{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "code_folding": [
     0
    ]
   },
   "outputs": [],
   "source": [
    "# 引入库\n",
    "from jqdata import *\n",
    "from jqfactor import get_factor_values\n",
    "\n",
    "# 日常处理\n",
    "import datetime\n",
    "import calendar\n",
    "from dateutil.relativedelta import relativedelta\n",
    "\n",
    "# 常用库\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "\n",
    "# 爬虫用\n",
    "import json\n",
    "import time\n",
    "import re\n",
    "import requests\n",
    "\n",
    "# 其他\n",
    "from alphalens.utils import print_table\n",
    "from tqdm import * # 进度条\n",
    "import itertools\n",
    "import copy\n",
    "import pickle\n",
    "\n",
    "# 线性模型库\n",
    "import statsmodels.api as sm\n",
    "\n",
    "# 计算\n",
    "import scipy.stats as ss\n",
    "from scipy.stats import zscore,spearmanr\n",
    "\n",
    "# 机器学习\n",
    "from sklearn import linear_model,svm   \n",
    "from sklearn.tree import DecisionTreeClassifier\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "# 画图\n",
    "from pylab import mpl\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.rcParams['font.family'] = 'serif'\n",
    "\n",
    "# 用来正常显示负号\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "plt.style.use('seaborn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 一、择时模型：分类模型 & 条件期望\n",
    "\n",
    "\n",
    "\n",
    "择时模型主要可分为2类：`分类预测模型`和`条件期望模型`。  \n",
    "\n",
    "**1. 分类预测模型：**  \n",
    "\n",
    "+ 预测因子未来收益的`方向`；\n",
    "\n",
    "\n",
    "+ 用到的`模型`主要有：决策树（随机森林、GBDT等），逻辑回归（Logistic Regression），支持向量机（SVM）等。\n",
    "\n",
    "\n",
    "**2. 条件期望模型：**\n",
    "\n",
    "+ 假设因子收益与条件变量服从联合正态分布；\n",
    "\n",
    "+ 求解因子收益的条件期望和条件协方差；\n",
    "\n",
    "+ `缺点：`联合正态分布假设难以满足。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 二、分类模型简介\n",
    "\n",
    "\n",
    "## 2.1 逻辑回归：操作简单但要求特征分类线性\n",
    "\n",
    "+  逻辑回归方法使用Sigmoid函数来归一化回归方程中的预测值，使p(x)的取值保持在（0，1）区间内，从而将分类问题映射到回归方程：\n",
    "\n",
    "### $$P(x_{1})=\\frac{e^{w_{0}+w_{1}x_{1}+...+w_{p}x_{p}}}{1+e^{w_{0}+w_{1}x_{1}+...+w_{p}x_{p}}}$$\n",
    "\n",
    "+ 因此回归方程也可写为：\n",
    "\n",
    "$$log\\left (\\frac{P(x)}{1-P(x)} \\right )=w_{0}+w_{1}x_{1}+...+w_{p}x_{p}$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.2 决策树：决策过程直观，应用广泛\n",
    "\n",
    "决策树是一种基本的分类算法，构建一棵决策树的关键之处在于，每一步选择哪种特征作为节点分裂的规则。其**核心原则**是使得节点分裂后的信息增益最大。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.3 SVM：低维到高维，适合小样本\n",
    "\n",
    "SVM是一种二类分类模型，对于在低维空间中线性不可分的输入变量，采用核函数将输入变量映射到高维特征空间，在这个高维空间中构造最优分类超平面。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.4 三种分类模型的优缺点对比\n",
    "\n",
    "**1.逻辑回归：**\n",
    "\n",
    "+ 优点：可输出预测概率；\n",
    "\n",
    "+ 缺点：特征变量较多时表现不佳；对于非线性分类问题的处理较困难（依赖于线性变换模型）。\n",
    "\n",
    "**2.决策树：**\n",
    "\n",
    "+ 优点：决策过程很直观易理解可以解决非线性分类问题；可以处理特征变量之间的相互关系；\n",
    "\n",
    "+ 缺点：容易过拟合（可使用随机森林降低过拟概率）。\n",
    "\n",
    "**3.支持向量机：**\n",
    "\n",
    "+ 优点：可以处理特征空间较大的分类问题；可以处理特征变量之间的非线性相关性；可以用于训练集较小的情形；\n",
    "\n",
    "+ 缺点：预测变量过多时运行效率较低；核函数的选择没有统一标准。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 三、入选因子以及相关系数矩阵\n",
    "  \n",
    "从光大Alpha因子体系，即**估值、质量、成长、规模、波动、换手、流动性、动量因子**中挑选如下12个常用因子作为SVM因子择时的测试对象：\n",
    "\n",
    "|因子类型|因子简称|因子含义| \n",
    "|---|---|---|\n",
    "|估值|book_to_price_ratio|账面市值比| \n",
    "|估值|PEG|市盈率相对盈利增长比率| \n",
    "|规模|ln(market_cap)|总市值对数| \n",
    "|质量|cfo_to_ev|经营活动产生的现金流量净额与企业价值之比TTM|\n",
    "|成长|total_asset_growth_rate|总资产增长率|\n",
    "|成长|roe_ttm|权益回报率TTM|\n",
    "|杠杆|LVGI|财务杠杆指数|\n",
    "|动量|ROC20|20日变动速率| \n",
    "|动量|ROC60|60日变动速率| \n",
    "|波动|sharpe_ratio_20|20日夏普比率| \n",
    "|流动性|VOL20|20日平均换手率|\n",
    "|流动性|Volume1M|当前交易量相比过去1个月日均交易量 与过去过去20日日均收益率乘积|\n",
    " \n",
    "**样本筛选规则：**\n",
    "+ 回测区间：2014年1月1日至2019年12月31日(后期需要用到过去36个月的因子收益均值，所以需将起始时间前推36个月，即推前至2011年1月1日)；  \n",
    "+ 调仓日：每月最后一个交易日为调仓日，以每月最后一个交易日的收盘价买入卖出；   \n",
    "+ 股票池：HS300；剔除选股日的ST股票；剔除上市不满6个月的股票；剔除选股日由于停牌等原因而无法买入的股票。   "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "**上述因子的初步筛选方式:**\n",
    "\n",
    "从大类因子中筛选收益率显著,高IC、IR并且单调性得分高的因子:\n",
    "\n",
    "单调性得分计算方式:\n",
    "\n",
    "$$Mono\\_Score = \\frac{R_5-R_1}{R_4-R_2}$$\n",
    "注:$R_i$代表分层回溯法得到的第i组的年化收益率\n",
    "\n",
    "---\n",
    "\n",
    "<center>***对因子进行打分***</center>\n",
    "\n",
    "|筛选指标|指标说明|打分标准(绝对值)|\n",
    "|--|--|--|\n",
    "|Factor_Ret|最近60个月因子收益均值|>0.002|\n",
    "|Factor_Ret_tvalue|最近60个月因子收益率t值|>2|\n",
    "|IC|信息系数|>0.02|\n",
    "|IR|信息系数比|>0.2|\n",
    "|Monotony|单调性得分|>2|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.1 数据提取\n",
    "\n",
    "根据样本筛选规则从jqdata的API接口中提取择时因子的原始数据。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "code_folding": [
     1,
     17,
     48
    ]
   },
   "outputs": [],
   "source": [
    "## step1：获取回测区间每月最后一个交易日\n",
    "def GetTradePerid(start_date: str, end_date: str, freq: str = 'M') -> list:\n",
    "    '''\n",
    "    start_date/end_date:str YYYY-MM-DD\n",
    "    freq:M月末，Q季末,Y年末 默认M\n",
    "    ================\n",
    "    return datetime.date list \n",
    "    '''\n",
    "    days = [x.date() for x in pd.date_range(start_date, end_date, freq=freq)]\n",
    "\n",
    "    return [\n",
    "        d if d in get_trade_days(start_date, end_date) else get_trade_days(\n",
    "            end_date=d, count=1)[0] for d in days\n",
    "    ]\n",
    "\n",
    "\n",
    "## step2:获取回测区间每月最后一个交易日的满足筛选条件的股票池\n",
    "def GetStocks(symbol: str, trDate: datetime.date, limit: int = 6) -> list:\n",
    "    '''\n",
    "    symobl:指数代码\n",
    "    trDate:交易日期\n",
    "    limit:上市不足N月 默认未上市不足6月\n",
    "    ================\n",
    "    return list \n",
    "    '''\n",
    "    stocks = get_index_stocks(symbol, date=trDate)\n",
    "\n",
    "    # 1.过滤ST\n",
    "    is_st = get_extras('is_st', stocks, end_date=trDate, count=1).iloc[-1]\n",
    "\n",
    "    stocks = is_st[is_st == False].index.tolist()\n",
    "\n",
    "    # 2.过滤上市不足6月股票\n",
    "    stocks = [\n",
    "        s for s in stocks\n",
    "        if get_security_info(symbol, date=trDate).start_date < trDate -\n",
    "        datetime.timedelta(limit * 30)\n",
    "    ]\n",
    "\n",
    "    # 3.过滤当日未交易股票\n",
    "    pause = get_price(\n",
    "        stocks, end_date=trDate, fields='paused', count=1, panel=False)\n",
    "    stocks = pause.query('paused==0')['code'].values.tolist()\n",
    "\n",
    "    return stocks\n",
    "\n",
    "\n",
    "## step3: 提取因子\n",
    "def GetFactors(dates: list):\n",
    "\n",
    "    factors_list = []\n",
    "\n",
    "    for date in tqdm(dates, desc='Download Factors'):\n",
    "\n",
    "        ## 提取每月末的股票池\n",
    "        stocks = GetStocks('000300.XSHG', date)\n",
    "\n",
    "        ## 提取每月末对应的因子值\n",
    "        factors = factors = [\n",
    "            'book_to_price_ratio', 'PEG', 'market_cap', 'cfo_to_ev',\n",
    "            'total_asset_growth_rate', 'roe_ttm', 'LVGI', 'ROC20', 'ROC60',\n",
    "            'sharpe_ratio_20', 'VOL20', 'Volume1M'\n",
    "        ]\n",
    "        \n",
    "        f_dict = get_factor_values(\n",
    "            stocks, factors, end_date=date, count=1)\n",
    "        \n",
    "        f_df = pd.concat(f_dict, axis=1).stack()\n",
    "\n",
    "        ## 提取辅助因子：申万一级行业名称,用于行业中性化\n",
    "        ind = get_industry(security=stocks, date=date)\n",
    "\n",
    "        ind = {\n",
    "            x: v.get('sw_l1').get('industry_name', np.nan)\n",
    "            for x in ind.keys() for v in ind.values() if 'sw_l1' in v.keys()\n",
    "        }\n",
    "\n",
    "        f_df['INDUSTRY'] = list(\n",
    "            map(lambda x: ind.get(x, np.nan), f_df.index.get_level_values(1)))\n",
    "\n",
    "        factors_list.append(f_df)  # 将每月末提取的因子数据存list中\n",
    "\n",
    "    factors_df = pd.concat(factors_list)\n",
    "    factors_df.index.names = ['date','code']\n",
    "    return factors_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "## 设置回测区间\n",
    "start_date = '2014-01-01'\n",
    "end_date = '2019-12-31'\n",
    "\n",
    "# 前推36个月\n",
    "begin_date = pd.date_range(end=start_date,periods=36,freq='M')[0].strftime('%Y-%m-%d')\n",
    "dates = GetTradePerid(begin_date, end_date, freq='M')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Download Factors: 100%|██████████| 108/108 [01:52<00:00,  1.30it/s]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "      <th>INDUSTRY</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2011-01-31</th>\n",
       "      <th>000001.XSHE</th>\n",
       "      <td>0.999736</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-3.047619</td>\n",
       "      <td>-19.077901</td>\n",
       "      <td>0.7905</td>\n",
       "      <td>-0.000787</td>\n",
       "      <td>1.659492</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5.335556e+10</td>\n",
       "      <td>0.190618</td>\n",
       "      <td>-1.218289</td>\n",
       "      <td>0.217945</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000002.XSHE</th>\n",
       "      <td>0.993440</td>\n",
       "      <td>0.809803</td>\n",
       "      <td>-0.310078</td>\n",
       "      <td>-15.837696</td>\n",
       "      <td>1.0840</td>\n",
       "      <td>0.000219</td>\n",
       "      <td>0.590631</td>\n",
       "      <td>-0.016202</td>\n",
       "      <td>9.016072e+10</td>\n",
       "      <td>0.140209</td>\n",
       "      <td>-0.152238</td>\n",
       "      <td>0.451210</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000009.XSHE</th>\n",
       "      <td>1.020497</td>\n",
       "      <td>1.314595</td>\n",
       "      <td>5.889015</td>\n",
       "      <td>6.613455</td>\n",
       "      <td>3.0240</td>\n",
       "      <td>0.005626</td>\n",
       "      <td>-1.613173</td>\n",
       "      <td>-0.031213</td>\n",
       "      <td>1.937173e+10</td>\n",
       "      <td>0.129520</td>\n",
       "      <td>1.432914</td>\n",
       "      <td>0.355307</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000012.XSHE</th>\n",
       "      <td>0.906201</td>\n",
       "      <td>0.163172</td>\n",
       "      <td>-0.330852</td>\n",
       "      <td>-4.968454</td>\n",
       "      <td>2.2345</td>\n",
       "      <td>-0.001619</td>\n",
       "      <td>-1.432409</td>\n",
       "      <td>0.049135</td>\n",
       "      <td>3.940520e+10</td>\n",
       "      <td>0.217347</td>\n",
       "      <td>-0.763299</td>\n",
       "      <td>0.066277</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000021.XSHE</th>\n",
       "      <td>1.357714</td>\n",
       "      <td>1.437908</td>\n",
       "      <td>-6.384977</td>\n",
       "      <td>-21.619497</td>\n",
       "      <td>0.4765</td>\n",
       "      <td>-0.004083</td>\n",
       "      <td>-0.606767</td>\n",
       "      <td>0.040464</td>\n",
       "      <td>1.412947e+10</td>\n",
       "      <td>0.092667</td>\n",
       "      <td>-2.018794</td>\n",
       "      <td>0.225302</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            LVGI    ...     INDUSTRY\n",
       "date       code                     ...             \n",
       "2011-01-31 000001.XSHE  0.999736    ...        金融服务I\n",
       "           000002.XSHE  0.993440    ...        金融服务I\n",
       "           000009.XSHE  1.020497    ...        金融服务I\n",
       "           000012.XSHE  0.906201    ...        金融服务I\n",
       "           000021.XSHE  1.357714    ...        金融服务I\n",
       "\n",
       "[5 rows x 13 columns]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 数据获取\n",
    "datas = GetFactors(dates)\n",
    "datas.to_csv('../Data/SVM.csv')\n",
    "\n",
    "datas.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.2 数据清洗\n",
    "\n",
    "对提取的因子原始数据进行数据清洗，包括**异常值处理**、**缺失值处理**、**标准化处理**以及**正交化处理**，各处理过程所使用的方法如下所示：\n",
    "\n",
    "+ Step1 异常值处理：采用稳健的`绝对中位数法MAD`；\n",
    " \n",
    " \n",
    "+ Step2 缺失值处理：由于行业缺失比例很小，如果有缺失，则直接删除行业缺失值；对于择时因子，则用该天的`行业中位数代替`；对于缺失比例很大（如超过20%）的因子则直接删除；\n",
    "\n",
    "\n",
    "+ Step3 标准化处理：采用`z值标准化`；\n",
    "\n",
    "\n",
    "+ Step4 正交化处理：采用`对称正交法`，因为用该方法正交后的因子值与原始值的相似程度高于其他正交方法，而且不需要确定正交顺序，计算效率高。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "      <th>INDUSTRY</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2011-01-31</th>\n",
       "      <th>000001.XSHE</th>\n",
       "      <td>0.999736</td>\n",
       "      <td>NaN</td>\n",
       "      <td>-3.047619</td>\n",
       "      <td>-19.077901</td>\n",
       "      <td>0.7905</td>\n",
       "      <td>-0.000787</td>\n",
       "      <td>1.659492</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5.335556e+10</td>\n",
       "      <td>0.190618</td>\n",
       "      <td>-1.218289</td>\n",
       "      <td>0.217945</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000002.XSHE</th>\n",
       "      <td>0.993440</td>\n",
       "      <td>0.809803</td>\n",
       "      <td>-0.310078</td>\n",
       "      <td>-15.837696</td>\n",
       "      <td>1.0840</td>\n",
       "      <td>0.000219</td>\n",
       "      <td>0.590631</td>\n",
       "      <td>-0.016202</td>\n",
       "      <td>9.016072e+10</td>\n",
       "      <td>0.140209</td>\n",
       "      <td>-0.152238</td>\n",
       "      <td>0.451210</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000009.XSHE</th>\n",
       "      <td>1.020497</td>\n",
       "      <td>1.314595</td>\n",
       "      <td>5.889015</td>\n",
       "      <td>6.613455</td>\n",
       "      <td>3.0240</td>\n",
       "      <td>0.005626</td>\n",
       "      <td>-1.613173</td>\n",
       "      <td>-0.031213</td>\n",
       "      <td>1.937173e+10</td>\n",
       "      <td>0.129520</td>\n",
       "      <td>1.432914</td>\n",
       "      <td>0.355307</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000012.XSHE</th>\n",
       "      <td>0.906201</td>\n",
       "      <td>0.163172</td>\n",
       "      <td>-0.330852</td>\n",
       "      <td>-4.968454</td>\n",
       "      <td>2.2345</td>\n",
       "      <td>-0.001619</td>\n",
       "      <td>-1.432409</td>\n",
       "      <td>0.049135</td>\n",
       "      <td>3.940520e+10</td>\n",
       "      <td>0.217347</td>\n",
       "      <td>-0.763299</td>\n",
       "      <td>0.066277</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000021.XSHE</th>\n",
       "      <td>1.357714</td>\n",
       "      <td>1.437908</td>\n",
       "      <td>-6.384977</td>\n",
       "      <td>-21.619497</td>\n",
       "      <td>0.4765</td>\n",
       "      <td>-0.004083</td>\n",
       "      <td>-0.606767</td>\n",
       "      <td>0.040464</td>\n",
       "      <td>1.412947e+10</td>\n",
       "      <td>0.092667</td>\n",
       "      <td>-2.018794</td>\n",
       "      <td>0.225302</td>\n",
       "      <td>金融服务I</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            LVGI    ...     INDUSTRY\n",
       "date       code                     ...             \n",
       "2011-01-31 000001.XSHE  0.999736    ...        金融服务I\n",
       "           000002.XSHE  0.993440    ...        金融服务I\n",
       "           000009.XSHE  1.020497    ...        金融服务I\n",
       "           000012.XSHE  0.906201    ...        金融服务I\n",
       "           000021.XSHE  1.357714    ...        金融服务I\n",
       "\n",
       "[5 rows x 13 columns]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 数据读取\n",
    "factors = pd.read_csv('../Data/SVM.csv',index_col=[0,1],parse_dates=True)\n",
    "factors.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "code_folding": [
     2,
     26,
     45,
     61
    ]
   },
   "outputs": [],
   "source": [
    "## step1:构建绝对中位数处理法函数\n",
    "# data为输入的数据集，如果数值超过num个判断标准则使其等于num个标准\n",
    "def extreme_process_MAD(df:pd.DataFrame, num:int=3)->pd.DataFrame:\n",
    "\n",
    "    # 为不破坏原始数据，先对其进行拷贝\n",
    "    df_ = df.copy()\n",
    "    feature_names = [\n",
    "        i for i in df_.columns.tolist() if i not in ['INDUSTRY']\n",
    "    ]  #获取数据集中需测试的因子名\n",
    "\n",
    "    # 获取中位数\n",
    "    median = df_[feature_names].median(axis=0)\n",
    "\n",
    "    # 按列索引匹配，并在行中广播\n",
    "    MAD = abs(df_[feature_names].sub(median, axis=1)).median(axis=0)\n",
    "\n",
    "    # 利用clip()函数，将因子取值限定在上下限范围内，即用上下限来代替异常值\n",
    "    df_.loc[:, feature_names] = df_.loc[:, feature_names].clip(\n",
    "        lower=median - num * 1.4826 * MAD,\n",
    "        upper=median + num * 1.4826 * MAD,\n",
    "        axis=1)\n",
    "\n",
    "    return df_\n",
    "\n",
    "\n",
    "## step2:构建缺失值处理函数\n",
    "def factors_null_process(df:pd.DataFrame)->pd.DataFrame:\n",
    "\n",
    "    # 删除行业缺失值\n",
    "    df = df[df['INDUSTRY'].notnull()]\n",
    "\n",
    "    # 变化索引，以行业为第一索引，股票代码为第二索引\n",
    "    df_ = df.reset_index().set_index(['INDUSTRY', 'code']).sort_index()\n",
    "\n",
    "    # 用行业中位数填充\n",
    "    df_ = df_.groupby(\n",
    "        level=0).apply(lambda factor: factor.fillna(factor.median()))\n",
    "\n",
    "    # 将索引换回\n",
    "    df_ = df_.reset_index().set_index('code').sort_index()\n",
    "\n",
    "    return df_.drop('date', axis=1)\n",
    "\n",
    "\n",
    "## step3:构建标准化处理函数\n",
    "def data_scale_Z_Score(df:pd.DataFrame)->pd.DataFrame:\n",
    "    # 为不破坏原始数据，先对其进行拷贝\n",
    "\n",
    "    df_ = df.copy()\n",
    "    feature_names = [\n",
    "        i for i in df_.columns.tolist() if i not in ['INDUSTRY']\n",
    "    ]  #获取数据集中需测试的因子名\n",
    "\n",
    "    df_.loc[:, feature_names] = (\n",
    "        df_.loc[:, feature_names] -\n",
    "        df_.loc[:, feature_names].mean()) / df_.loc[:, feature_names].std()\n",
    "\n",
    "    return df_\n",
    "\n",
    "\n",
    "## step4:构建对称正交变换函数\n",
    "def lowdin_orthogonal(df:pd.DataFrame)->pd.DataFrame:\n",
    "\n",
    "    df_ = df.copy()\n",
    "    # 除去第一列行业指标,将数据框转化为矩阵\n",
    "    col = [i for i in df_.columns.tolist() if i not in ['INDUSTRY']]\n",
    "    F = np.array(df_[col])\n",
    "    M = np.dot(F.T, F)\n",
    "    a, U = np.linalg.eig(M)  #U为特征向量，a为特征值\n",
    "    one = np.identity(len(col))\n",
    "    D = one * a  #生成有特征值组成的对角矩阵\n",
    "    D_inv = np.linalg.inv(D)\n",
    "    S = U.dot(np.sqrt(D_inv)).dot(U.T)\n",
    "    df_[col] = df_[col].dot(S)\n",
    "    return df_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "factors1 = factors.groupby(level='date').apply(extreme_process_MAD)  #去极值\n",
    "factors2 = factors1.groupby(level='date').apply(factors_null_process)  #去缺失值\n",
    "factors3 = factors2.groupby(level='date').apply(data_scale_Z_Score)  #标准化处理\n",
    "factors4 = factors3.groupby(level='date').apply(lowdin_orthogonal)  #对称正交化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "MultiIndex: 31286 entries, (2011-01-31 00:00:00, 000001.XSHE) to (2019-12-31 00:00:00, 603993.XSHG)\n",
      "Data columns (total 13 columns):\n",
      "LVGI                       30203 non-null float64\n",
      "PEG                        19212 non-null float64\n",
      "ROC20                      31286 non-null float64\n",
      "ROC60                      31286 non-null float64\n",
      "VOL20                      31286 non-null float64\n",
      "Volume1M                   31286 non-null float64\n",
      "book_to_price_ratio        31286 non-null float64\n",
      "cfo_to_ev                  30309 non-null float64\n",
      "market_cap                 31286 non-null float64\n",
      "roe_ttm                    31268 non-null float64\n",
      "sharpe_ratio_20            31282 non-null float64\n",
      "total_asset_growth_rate    30632 non-null float64\n",
      "INDUSTRY                   31286 non-null object\n",
      "dtypes: float64(12), object(1)\n",
      "memory usage: 4.4+ MB\n",
      "None\n",
      "<class 'pandas.core.frame.DataFrame'>\n",
      "MultiIndex: 31286 entries, (2011-01-31 00:00:00, 000001.XSHE) to (2019-12-31 00:00:00, 603993.XSHG)\n",
      "Data columns (total 13 columns):\n",
      "INDUSTRY                   31286 non-null object\n",
      "LVGI                       31286 non-null float64\n",
      "PEG                        31286 non-null float64\n",
      "ROC20                      31286 non-null float64\n",
      "ROC60                      31286 non-null float64\n",
      "VOL20                      31286 non-null float64\n",
      "Volume1M                   31286 non-null float64\n",
      "book_to_price_ratio        31286 non-null float64\n",
      "cfo_to_ev                  31286 non-null float64\n",
      "market_cap                 31286 non-null float64\n",
      "roe_ttm                    31286 non-null float64\n",
      "sharpe_ratio_20            31286 non-null float64\n",
      "total_asset_growth_rate    31286 non-null float64\n",
      "dtypes: float64(12), object(1)\n",
      "memory usage: 4.4+ MB\n",
      "去缺失值:\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "print(factors.info())\n",
    "print('去缺失值:\\n%s'%factors2.info())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 四、以对称正交后的因子收益作为预测目标变量\n",
    "\n",
    "因子择时是通过对预期有效的因子赋予较大的权重，对预期失效的因子赋予较小的权重或剔除来实现因子权重的动态配置，进而提高组合收益，所以因子有效性衡量指标的选择显得尤为重要。IC、IR、因子收益等指标都可用来衡量因子的有效性，但由于因子IC是秩相关系数，找到影响相关系数的解释变量比较困难，而因子收益可以类比股票多空组合的收益，从中筛选出有效的解释变量的可能性更大，所以我们**采用因子收益（即因子横截面回归的斜率）来衡量因子有效性**。但回归之前需要对因子进行对称正交处理，对称正交后的截面因子值两两正交，**这保证了回归法计算各个因子收益时，因子间不会出现重复暴露某一风格的情况，从而回归得到的因子收益更具有代表性，也更适合作为分类预测模型的目标变量**\n",
    " \n",
    "## 4.1 对称正交前后因子横截面相关系数对比"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "code_folding": [
     1
    ]
   },
   "outputs": [],
   "source": [
    "# 构建计算横截面因子载荷相关系数均值函数\n",
    "def get_relations(datas: pd.DataFrame)->pd.DataFrame:\n",
    "    '''\n",
    "    datas:MultiIndex date,code columns->factor_name\n",
    "    '''\n",
    "    dates = set(datas.index.get_level_values(0))\n",
    "    \n",
    "    relations = 0\n",
    "    \n",
    "    for date,data in datas.groupby(level='date'):\n",
    "\n",
    "        # data为提取横截面因子数据\n",
    "        relations = relations + data.corr()  # 计算相关系数\n",
    "        \n",
    "    return relations / len(dates)  # relations_mean计算横截面因子载荷相关系数均值\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "code_folding": [
     4
    ]
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8d7f583a58>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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iQROvbNm/77Qbwk/dJqg0PGcO3Sa1KRkjmwJY/vC9QC81LI6T1YsnaXXCJ4Zvpz1+bP28o/O+Tx57qMBmJ2sxOw9Qa4C3pydu4H/m9kTs7MTtyOuYUtJJazz+zy3aCBW11zYbTYOdptO0pWs/Um1hlf+Z3QI2ULS6d2ZdiyXJytn2rEygxrBj9jvNYJjY2N54403SExMZOXKlRmN3/Hjx+Ps7MzgwYMBiI6OpmvXrgwaNIgiRYo4fCPYUWS1RnBOk5UbwTlFVm4E5xRZuRGZE+j5N15WbwTnBNmlEezIsnIjOCfI6o3gnCArN4JziuzQCHZkagQ/nKRTOzPtWC4lq2basTKDloYwwLlz5+jY8dcvnhg0aBDlypUjb968eHl53Tf7d9q0aTRt2hRXV1dSUlLo0KEDlStXJjIya826FBERERERERERydZsaX9+n2xKjeBHrFChQhw6dOiB+2bPnn3fNqvVSlBQEEFBQQ881sPMBhYREREREREREZGcTY1gEREREREREREREQC7435ZnBrBIiIiIiIiIiIiIgA2x20Em40OQERERERERERERET+XZoRLCIiIiIiIiIiIgJaGkJERERERERERETE4WlpCBERERERERERERHJrjQjWERERERERERERASw29OMDuFfo0awiIiIiIiIiIiICDj0GsFaGkJERERERERERETEwZnsdrvd6CBEREREREREREREjJZ4cG2mHSvXs40z7ViZQUtDiIiIiIiIiIiIiIBDLw2hRnAO0b1oK6NDyNHmha8kJeqs0WHkWE6+xelZtLXRYeRos8NXqAYGmx2+gm4aCwwzP3wlb+ocMNSc8BWUzV/R6DBytKNX9tLqiSZGh5GjrTy/huZPZK2ZSTlJ6Pm1OgcMtvL8Gr0nNdjs8BW0f6KZ0WHkWEvPrzI6hOzB5rhfFqc1gkVEREREREREREQcnGYEi4iIiIiIiIiIiICWhhARERERERERERFxeDbHbQRraQgRERERERERERERB6cZwSIiIiIiIiIiIiKgpSFEREREREREREREHJ6WhhARERERERERERGR7EozgkVERERERERERETAoWcEqxEsIiIiIiIiIiIiAtjtaUaH8K/R0hAiIiIiIiIiIiIiDk4zgkVERERERERERERAS0NI5ouMjMTf35+yZctit9tJTk6mW7du3Lx5k2nT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IiIiIiIiIiIikrWoEWyQQoUK3bcsBEDz5s1p3rz57/5ekyZNaNJEHycSERERERERERHJdLasN5M3s6gRLCIiIiIiIiIiIgIO3QjWGsEiIiIiIiIiIiIiDk4zgkVEREREREREREQgS37JW2ZRI1hEREREREREREQEtDSEiIiIiIiIiIiIiGRfmhEsIiIiIiIiIiIiAloaQkRERERERERERMThaWkIEREREREREREREcmuNCNYREREREREREREBBx6aQiT3W63Gx2EiIiIiIiIiIiIiNFufzY+046Vu+VbmXaszKAZwTnEm0VbGx1CjjYnfAU9VQPDzA5fQUrUWaPDyNGcfItzvdUrRoeRo3mv/Jp3nggwOowca8T5T0k6vMnoMHI0l3L1aFbE3+gwcrRVF9bRtWhLo8PI0RaEf6axwEAjzn/KwKJtjQ4jR3s/fBmJOxYbHUaOlqtaR10bG2h2+AqjQxCDqREsIiIiIiIiIiIiAg79ZXFqBIuIiIiIiIiIiIgAOPAqumajAxARERERERERERGRf5dmBIuIiIiIiIiIiIjAI10aIiQkhB9++AGTycTw4cMpV64cAFeuXCE4ODjjfhEREQQFBZGSksK0adMoUqQIAJUrV+bNN9986MdTI1hEREREREREREQEHlkjeN++fZw/f57ly5dz5swZhg8fzvLlywHInz8/ixff+XLL1NRUOnbsSM2aNdm0aRMNGjRgyJAhf+sxtTSEiIiIiIiIiIiIyCO0Z88eateuDUCJEiWIjY0lPj7+vvutWrWKevXq4erq+o8fU41gEREREREREREREQC7LfN+/kBUVBTe3t4Zt318fLh27dp991u5ciUtW7bMuL1v3z66dOlCYGAgx48f/0upaWkIEREREREREREREXikawTfzW6337ft0KFDFC9eHDc3NwDKly+Pj48Pr7zyCocOHWLIkCGsW7fuoR9DjWARERERERERERGRR8jPz4+oqKiM21evXiVfvnz33Ofrr7+mUqVKGbdLlChBiRIlAKhQoQIxMTGkpaVhsVge6jG1NISIiIiIiIiIiIgIgN2eeT9/oEqVKmzatAmAY8eO4efnlzHz9xdHjhzh6aefzrg9f/58vvjiCwBOnTqFj4/PQzeBQTOCRURERERERERERO54REtDPPvss5QpU4a2bdtiMpkYPXo0oaGhuLu7U6dO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SZMmDBgwgJo1a2Kz2ZgwYQKurq7079+fLl260KNHD1544YWMx1q3bh179+7lnXfeYfPmzWzevJn33nvvD+PLqo3gnCIrN4JzguzcCHYU2aER7OiyQyPYkWWXRrAjy+qN4JwgKzWCc6rs1Ah2RFm5EZxTZIdGsKPLyo3gnECN4IfjyI1g65/fRf6OwoULU69ePebMmcPw4cOZMmUKjRs3xtnZGR8fH6ZNm4bFcucbPRcuXMioUaOYOXMmzs7OVK5cmd69e3Pu3DkOHDjA9OnTM47bqVMnGjRowO7du2nXrh3Ozs5MnDjRqDRFREREREREREQcRxb8krfMokZwJilUqFDGbOBf/DIDGO4sBfF7/Pz87lka4hfFihXjhx9+eODvTJgw4W9GKiIiIiIiIiIiIg+UBdf2zSz6sjgRERERERERERERB6cZwSIiIiIiIiIiIiIANi0NISIiIiIiIiIiIuLY1AgWERERERERERERcXB2rREsIiIiIiIiIiIiItmUZgSLiIiIiIiIiIiIgJaGEBEREREREREREXF4Ni0NISIiIiIiIiIiIiLZlGYEi4iIiIiIiIiIiADYtTSEiIiIiIiIiIiIiGNz4KUhTHa73XGzExEREREREREREXlICZM6Z9qx8gxZlGnHygyaEZxD9Cza2ugQcrTZ4StUAwPNDl/B9VavGB1Gjua98mtSos4aHUaO5uRbnPeKdDA6jBwr+MISoupXNzqMHM134zfUK1zf6DBytE0RG+latKXRYeRoC8I/Y2EhjQVG6RK5hFFFA4wOI0d7O/xTrtTQeGyk/F99Q++ibYwOI8eaGb7c6BCyBbtNS0OIiIiIiIiIiIiIODYHXhrCbHQAIiIiIiIiIiIiIvLv0oxgEREREREREREREQC7loYQERERERERERERcWxaGkJEREREREREREREsivNCBYREREREREREREBsGlpCBERERERERERERHHpqUhRERERERERERERCS70oxgEREREREREREREQC7loYQERERERERERERcWxaGkJEREREREREREREsivNCM4kkZGR+Pv7U7ZsWQCSk5MpWbIkY8aMITk5mQkTJnD48GGsViu+vr6MHj2aAgUKABAeHk5ISAgxMTHYbDYqVKjAkCFDcHZ25sSJEwwfPhyAWrVq0atXL1JSUhg6dCiXLl3CYrEwYcIEChcu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CxYsoH79lI5CoUKF+P777wH47rvvKF68eLp9TCYT9+/f5/79+5w6deqJHqdEiRJ8+eWXWK1WEhMTGT9+/BPtV6tWLRYuXMibb775F1olIiIiIiIiIiIiT8Jmy7if542D0QGeN/Xr12fo0KFMnToVgFGjRjF27FhMJhOenp5MmjSJkyd/+YhX69atadGiBQULFuSVV155oscoVaoUZcqUoWXLlthsNtq0aQPA2rVr+eKLLzh16hTDhw+nYMGCTJkyJW2/0qVL4+TkpEKwiIiIiIiIiIjIU/A8TumQUVQI/pUaNWqkjQAGeOmll1ixYkW6bcqUKUOZMmUA6NevH/369fvN+v8KCgr63d8HDBjAgAED0u3XvHlzmjdv/ptM/318s9nM7t2705Y/6bQQIiIiIiIiIiIikrWpECwiIiIiIiIiIiICWG0aESwiIiIiIiIiIiJi12x2XAjWl8WJiIiIiIiIiIiI2DmNCBYREREREREREREBbDajEzw9KgSLiIiIiIiIiIiIYN9zBGtqCBERERERERERERE7pxHBIiIiIiIiIiIiItj3l8WpECwiIiIiIiIiIiKCfc8RrKkhREREREREREREROycyWaz5zq3iIiIiIiIiIiIyJM5lKdRhh3rtUufZ9ixMoKmhsgi6r1Q1+gIWdrGi5soHljW6BhZ1olr+2n8Qn2jY2Rp6y5uoGbe2kbHyNK2RobjnC2v0TGyrMSESL0OGWzdxQ0kRf9sdIwszdGvAJNeDDI6RpY2/EIIi/LoHBil66UQHJxyGx0jS3v44DLlclcxOkaWtu/yl+T0KmZ0jCzr6u0fjI6QKdjzHMGaGkJERERERERERETEzmlEsIiIiIiIiIiIiAhgteMRwSoEi4iIiIiIiIiIiAD2/GVqKgSLiIiIiIiIiIiIYN8jgjVHsIiIiIiIiIiIiIid04hgEREREREREREREcBmxyOCVQgWERERERERERERAaxGB3iKNDWEiIiIiIiIiIiIiJ3TiGARERERERERERERwIamhhARERERERERERGxa1ab0QmeHk0NISIiIiIiIiIiImLnnmkhOCwsjMmTJ//P+1etWpW7d+8+0bZbtmz5nx/nccLCwti+fftTOfbv+W87vvnmG1auXPnMHldERERERERERCSrsWLKsJ/njV2OCH7w4AHLli17Ksdu0qQJNWrUeCrH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Cy+8QMuWLQF4//33WbVqFY6OjgDcunUr83FISAgVKlSgQIEC/6h2+cx7BGelGTNmZA6t8KDQ0NA/vEHb49Zr2rRplsYHsH37dhYtWvS76e3atePdd9/N8tcTERERERERERGRv+dZ3SwuLi6OMmXKZD53d3cnNjY2s/j73/+vXr3K7t276dWrF7/88gtnz56la9euJCQkEBQURNWqVZ/4NbN1ITgoKIigoKAsXc/Hx+efhvWQ2rVrU7t27SzdpoiIiIiIiIiIiGS99GdTB/6dRw3aEB8fT9euXRk+fDhubm54e3sTFBREvXr1OH/+PO3ateOrr77Czs7uiV7DlNVBi4iIiIiIiIiIiMgf8/T0JC4uLvP51atX8fDwyHx+69YtOnfuTO/evalWrRoAXl5e1K9fHysrKwoXLky+fPm4cuXKE7+mCsEiIiIiIiIiIiIiQDpWWfbzOFWrVmXr1q0AnDhxAk9Pz8zhIADGjRtHYGAg1atXz5y2fv16FixYAEBsbCzx8fF4eXk9cW7ZemgIERERERERERERkazy+wEano7XX3+dMmXK4Ofnh5WVFcOHDyciIgInJyeqVavG2rVriYqKYtWqVQA0bNiQBg0a0K9fP7Zv305KSgohISFPPCwEqBAsIiIiIiIiIiIi8sz169fvoeevvPJK5uPjx48/cp3Zs2f/7ddTIVhEREREREREREQESDc6gKdIhWARERERERERERERIN3q8WP7Zme6WZyIiIiIiIiIiIiIhVOPYBERERERERERERGe3c3ijGBlNpstOT8RERERERERERGRJ7KygH+Wbcv3UniWbSsrqEdwDtG8SGOjQ8jRIqLW07JIE6PDyLG+iFpHJ+8WRoeRo82PXKU2MNj8yFVUfqGm0WHkWPtivtExYLD5kasYW6St0WHkaIOiwkiJ+4/RYeRotvmKMbGwjgOj9IsOY6r2v6F6RYfRtkhzo8PI0cKiIlSfMFBE1HqjQxCDqRAsIiIiIiIiIiIiAqRb7r3iVAgWERERERERERERAUjHcivBJqMDEBEREREREREREZGnSz2CRURERERERERERACz0QE8RSoEi4iIiIiIiIiIiGDZYwRraAgRERERERERERERC6cewSIiIiIiIiIiIiJAutEBPEUqBIuIiIiIiIiIiIhg2WMEa2gIEREREREREREREQunHsEiIiIi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RERE/suchT/PGxWCH6N+/frcvXuXtm3bsnjxYipVqpQ5r127dpw4cYJ27doxadIkhgwZ8ofbKV68OCdPniQ0NPQvrVevXj3y5MmDn58fXbt25Y033gDAysqK1157jVu3bvHCCy9kXcIiIiIiIiIiIiI5WLpV1v08bzRG8GPY2dkxYcKEh6ZFREQA4OjoyLRpT3ZTLHd3d7755pvM50+6no2NDWPGjHnkvOHDhz/RNkRERERERERERERUCM5CISEhnDt37nfT582bR65cubJ8PREREREREREREck6lnyzOBWCs1BISMgzXU9ERERERERERESyjiUXgjVGsIiIiIiIiIiIiIiFU49gEREREREREREREcBsdABPkQrBIiIiIiIiIiIiIkC6ldERPD0qBIuIiIiIiIiIiIigMYJFREREREREREREJBtTj2ARERERERERERERLHuMYCuz2WzJ+YmIiIiIiIiIiIg8kTFF/LNsW0OiwrNsW1lBPYJziDZFmhkdQo62LGoNzYs0NjqMHCsian2WnsjlrxsSFc6CQm2NDiNH63ghDA+XkkaHkWPFJvzMMG+dh4w0MjKceToPGarzhTAmFlYbGKlfdBgpcf8xOowcyzZfMTZ5tTY6jBytwZXlDPBWGxhpfORygrx9jQ4jx5oRudLoEMRgKgSLiIiIiIiIiIiIYNk3i1MhWERERERERERERATLHiPYZHQAIiIiIiIiIiIiIvJ0qUewiIiIiIiIiIiICBoaQkRERERERERERMTipVsZHcHTo6EhRERERERERERERCycegSLiIiIiIiIiIiIAOkWfLs4FYJFREREREREREREwILLwBoaQkRERERERERERMTiqUewiIiIiIiIiIiICJBudABPkQrBIiIiIiIiIiIiIlj2GMEaGkJERERERERERETEwqlH8D8QERHBmTNnGDBgwJ8ue/r0aezt7SlatOgziCz7eLtRNZr08MFsNhM2eiEndv+UOa9+p8ZUa14Tszmd2cHTMZms+HBCECZrExfOnOeznp/i/0l7ylR5FZO1iUXD5nF6/wkDs8meqjZ6B58eLcFsZuHoBfy0+1jmvEadmlCzeS3MZjPTg6dSrGwx2g4I5OK5CwCMDhxB637+lKtaHmtrE2Hjl3Box0GjUrEYjp6u+MzpjbWNNRcOneGrkCUA5C/rzfujPsClUD6m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kLp161KrVi0iIiKYN28eRYoUoV69ejRp0oTRo0dToUIFGjZs+NBrPbjeo/z39Tp16pQ5bc2aNezatYt//etf3LhxgxYtWrBjxw4CAgL4+OOPefXVVzl27BgzZsxg7ty5j821TZFm/3yHyd+2LGoNzYs0NjqMHCsiaj1jivj/+YLy1AyJCmdBobZGh5GjdbwQhoeLPjAbJTbhZ4Z56zxkpJGR4czTechQnS+EMbGw2sBI/aLDSIn7j9Fh5Fi2+YqxyUvjHBupwZXlDPBWGxhpfORygrx9jQ4jx5oRqeFbnkQf76z7tvOnkSuybFtZIccPDfFHjh8/Tv78+bG1tWX79u2kpaU9smdvzZo1CQ0NZebMmcTFxVG+fHm2b79/x+b4+HgmT54MgJWV1WPHLixXrhz799//Wt/JkycZMWIE169fp1ChQphMJr7++uuHXv/gwYMA/PjjjxQvXjzL8hYREREREREREcmpdLO4HKhKlSpERUXRtm1b6tSpQ82aNQkJCXnksu7u7vTs2ZOQkBCmTJnCvn378PPzIy0tjaCgIAAqVqzI6NGjcXBwyBzW4UGVKlVi+/bttGnTBoDhw4fj4OBAt27d+PHHH/Hx8SF//vzMmDEDgJiYGDp27MjNmzcfGjtYRERERERERERE/h6zBQ8OkaMLwc2bN898XKtWrcxhGx58/F/t27d/7PoNGjSgQYMGAIwZM+Z3y/r4+ODj4/PYeAYOHPi7aRs2bMh83Ljx/aEF9u/fT6tWrShRosRjtyciIiIiIiIiIiICObwQbIQZM2ZkDgHxoNDQUF588UUDIhIRERERERERERF4Pod0yCoqBD9jQUFBmcNF/F1Lly7NomhERERERERERETkv9IteGgI3SxORERERERERERExMKpR7CIiIiIiIiIiIgIWHB/YBWCRURERERERERERIBnOzREaGgoR48excrKisGDB/Pqq69mztuzZw+TJ0/G2tqa6tWr06NHjz9d58+oECwiIiIiIiIiIiLyDB04cICoqChWrlzJuXPnGDx4MCtXrsycP3r0aBYsWICXlxdt27albt26XLt27bHr/BkVgkVERERERERERESA9Gf0Onv37qVOnToAFC9enISEBG7duoWjoyPnz5/HxcWFAgUKAFCjRg327t3LtWvX/nCdJ6GbxYmIiIiIiIiIiIgA5iz89zhxcXG4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\n",
      "text/plain": [
       "<Figure size 1872x504 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制因子正交前的相关性的热力图\n",
    "fig = plt.figure(figsize=(26, 7))\n",
    "relations = get_relations(factors3)  #计算对称正交之前的相关系数矩阵\n",
    "\n",
    "sns.heatmap(\n",
    "    relations,\n",
    "    annot=True,\n",
    "    linewidths=0.05,\n",
    "    linecolor='white',\n",
    "    annot_kws={\n",
    "        'size': 8,\n",
    "        'weight': 'bold'\n",
    "    })"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "code_folding": [
     0
    ]
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f8d7f936a90>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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Rw8sLCyoU6cOb7/9NmXKlOHw4cN4eHhgY2PDlCmpm7kUERERERGRrEkzAbIJZSKfUFbWRLEw0UwAE80EMNE5YqJYmCgWT2gmgIn6hIliYaJYmGSlmQD3PzHPPTTyfp70TzumNt0YUERERERERCSb0HIAERERERERkeSkw8/5mYOSACIiIiIiIiLJ+efn0DM7LQcQERERERERySY0E0BEREREREQkOVlkOYBmAoiIiIiIiIhkE5oJICIiIiIiIpIczQQQERERERERkcxEMwFEREREREREkmEwZI2ZAEoCiIiIiIiIiCRHywFEREREREREJDPRTAARERERERGR5GSRmQAWhqyysEFERERERETETO51czFLufbLA81SbmI0EyCbyGFTJL2rkCHERocpFv9QLEwUC5PY6DBiwq+kdzUyBGvHUuoX/9A5YqJYPBEbHQbo/QWoTzxLsc9bojUAACAASURBVDBRLEyejhdZgSGLzARQEkBEREREREQkOVkkCaAbA4qIiIiIiIhkE5oJICIiIiIiIpKcuPSuQOrQTAARERERERGRbEIzAURERERERESSoRsDioiIiIiIiGQXWSQJoOUAIiIiIiIiItmEZgKIiIiIiIiIJEc3BhQRERERERGRzEQzAURERERERESSkVVuDKiZACIiIiIiIiLZhGYCiIiIiIiIiCQni9wTQEkAERERERERkWRoOYC8oH379pw7dy7etpkzZ7JixQq2bduGm5sb7du3x83Njd27dxuP8fLy4tKlSy+UN23aNNq3b0+bNm0ICAgA4MaNG3h5eeHp6cmAAQOIjo42b6NEREREREQky1ASIBU1b96cnTt3xtsWEBBApUqVWLlyJStWrMDPz4/Vq1ezcuVKjhw5kmhZR/+PvTuPj+n6/zj+SiKxRSxFa6+tSi1FfW0/qo0gsZYmkmjsSyjaikZpCUGIpWqvtZaEEkLtRFChmthjK221paillgqRReb3R2pGiEQqk5C8n4/HPB6Zc+89c84n5565c+bcMz/+yM8//8yKFSuYP38+fn5+AEybNg13d3eWLVtGmTJlWLVqlVnrlJwmbzfg0MEQDh0MYfy4z43p9u824sD+bRw/9j1t27ZIMQ9LS0t8R3lz4+/T9O7lAUD16lUI/3EzxyJ34dmni1nrkJ7KlSvDhnVLiY+9QM6cOY3pHw3sxaGDIRw+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oqIoVqwY//zzD+Hh4cTFxSWpxwOVK1fmyJEjxMfHEx8fz9GjR6lcufJTv46IiIiIiIikXYKZHhktw28HKFeuHB999BF//PEHH3/8MSVKlMDLy4scOXJQqlQp4zf2EREReHh4EBcXZ/zW+wFPT086duyIg4MDVatWfew1ihQpQlxcHAMHDuTLL79MMa9HlS9fnmHDhvH777/j6ur6xAGDOnXqEBoaalyx38fHh0qVKlG3bl06duyIwWBI02r+7u7uuLm58eqrr9KzZ0+mT59O48aNjfVo0qQJACVLljQuIGgwGHB2dqZECY0yioiIiIiISOoy9HaA5114eDiBgYFMm/bi/UxIajQdKZGmZpkoFiaKhYliYaJYmOh2ABPdDpBItwOYqK8wUSxMFAuTrHQ7wCYz3Q7glMG3A2T4TID0NGPGDOOU/If5+fk9cTG+lI5r165dupYPIDQ0lEWLFj2W3rlzZxwcHB4/QERERERERMRMNBMgm9BIZCKNypooFiaKhYliYaJYmGgmgIlmAiTSTAAT9RUmioWJYmGSlWYCbHzZzSz5trycsT/P+ELPBBARERERERHJCAlZ4xcCM/7XAUREREREREQkc2gmgIiIiIiIiEgqEsgaUwE0E0BEREREREQkm9BMABEREREREZFUZJUV9TUIICIiIiIiIpKKhMwuQDrR7QAiIiIiIiIi2YRmAoiIiIiIiIikIsFCCwOKiIiIiIiIyAtEMwFEREREREREUpFVFga0MBgMWaUuIiIiIiIiImaxolgns+Tb8VKgWfJ9Es0EyCZy2JTI7CI8F+JjLygW/1IsTBQLE8XCRLEwUSxM4mMvEHftbGYXI9NZFy4H6PoCdH48TLEwUSxM4mMvZHYR5BEaBBARERERERFJRULWWBdQCwOKiIiIiIiIZBcaBBARERERERFJRQIWZnmkxs/Pj44dO+Lq6kpkZGSy+0yePBkPD4+nqocGAURERERERESeQxEREfzxxx+sWLGCsWPHMnbs2Mf2+eWXX9i/f/9T56lBABEREREREZFUGMz0SMm+ffto2rQpAOXLl+fWrVtERUUl2Wf8+PF88sknT10PDQKIiIiIiIiIpCLBwjyPlFy7do2CBQsanxcqVIirV68anwcHB/O///2PEiWe/tcoNAggIiIiIiIi8gIwGExzB27evElwcDDdunVLUx76iUAR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X3zxBc6ePYt58+bh559/ZhGASuDCgERERCRLer0e0dHRSE9PhyRJcHd3R+/evaFWq0VHIyKSrbIWBrSxsUGLFi1ERyOZ4EgAIiIikiWj0QiDwWDaKhCA6b9ERFS2ChUqwNLSEgkJCQAArVaLiIgIHDlyRHAykgsWAYiIiEiW5syZgypVqsDLyws6nQ4pKSlITk7GokWLREcjIpKtqVOnolKlSkhJSUHXrl2RnJyMiRMnio5FMsIiABEREcnS7du3sWzZMtPx+++/j5EjRwpMREQkf48ePUJ4eDj8/Pwwb9485OXlYf78+ejbt6/oaCQT3B2AiIiIZEmn0+HOnTum49u3b0Ov1wtMREQkfzqdDllZWVCr1cjMzISVlRUyMzNFxyIZ4cKAREREJEspKSmYP38+VCoV9Ho9LCwsEBQUBE9PT9HRiIhkKzExEXl5ebC3t8ecOXOQn58PX19fTJo0SXQ0kglOByAiIiJZunHjBp48eQJbW1uo1WoUFBQgOzubRQAiopdo37696e//XAwwPDyc6wMQiwBEREQkT1u3bsUPP/yAqlWrAgAePnyIMWPGwMfHR3AyIqI3U0pKiugIJANcE4CIiIhkqU6dOrCzszMd29vbo379+gITERG92TgTnACOBCAiIiKZWbp0KSRJQoUKFdC3b1+0atUKkiTh7NmzaNiwoeh4RERvLEmSREcgGWARgIiIiGTFxcUFANC4ceMS7e7u7iLiEBERlSssAhAREZGs9OvXT3QEIqJyidMBCOAWgURERERERG+848ePv/R8p06dcOvWLTg4OJgpEckVRwIQERERERG94WJjY196vlOnTiwAEAAWAYiIiIiIiN54S5YsKbNdp9MhMDDQzGlIzlgEICIiIiIiKif27NmD0NBQ5OTkwMrKCgaDAZ07dxYdi2REJToAERERERER/e/YuXMnjhw5gpYtW+L06dNYvnw5WrZsKToWyQiLAEREREREROWEtbU1rK2todPpYDAY0K1bNxw5ckR0LJIRTgcgIiIiIiIqJ9zd3bF9+3Z07NgRo0aNQp06dfD06VPRsUhGuEUgERERERFROaHX62EwGGBlZYVff/0VOTk5cHd3584AZMLpAERERERERG84vV6PJ0+eYPTo0TAYDCgoKICbmxvat2+P8ePHi45HMsLpAERERERERG+4n3/+GZs3b8b58+fRu3dvU7tKpYKXl5fAZCQ3nA5ARERERERUTvzwww/48MMPRccgGeNIACIiIiIionKicePG8PPzw59//onCwkK4uLhg7ty5cHZ2Fh2NZIIjAYiIiIiIiMoJX19fBAQEwM3NDQBw9uxZrFixAtu2bROcjOSCCwMSERERERGVE2q12lQAAACNRgNJkgQmIrnhdAAiIiIiIqJyws7ODpGRkabFAJOSklC1alXBqUhOWAQgIiIiIiIqJ5o2bQqtVot169ZBkiS4u7vDwcFBdCySEa4JQERERERE9IY7dOgQoqOjkZqaijZt2uD517zCwkJcvHgR8fHxghOSXLAIQEREREREVA7cvHkTQUFB8Pf3N7WpVCo4OTmhWrVqApORnLAIQERERERERKQQ3B2AiIiIiIiISCFYBCAiIiIiIiJSCBYBiIiIiIiIiBSCRQAiIiIiIiIihWARgIiIiIiIiEgh/i+Qdma1kdC0IQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1296x576 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制因子正交后的相关性热力图\n",
    "fig = plt.figure(figsize=(18, 8))\n",
    "relations = get_relations(factors4)  #计算对称正交之后的相关系数矩阵\n",
    "\n",
    "sns.heatmap(\n",
    "    relations,\n",
    "    annot=True,\n",
    "    linewidths=0.05,\n",
    "    linecolor='white',\n",
    "    annot_kws={\n",
    "        'size': 8,\n",
    "        'weight': 'bold'\n",
    "    })"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从原始的横截面因子载荷(去极值中性化后)相关系数矩阵热力图中可以看出，有些因子之间的共线性确实较为明显；但将因子对称正交后，横截面因子载荷的相关性基本降低为0，共线性已基本消除。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.2 计算对称正交后的因子收益\n",
    "\n",
    "采用`截面回归`的方法计算因子收益，在对每个因子进行回归时需要加入申万一级行业虚拟变量和市值因子剔除行业因素和市值因素，但计算规模因子（对数市值）时只剔除行业。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "code_folding": [
     1
    ]
   },
   "outputs": [],
   "source": [
    "# 提取市值因子并计算未来一期对数收益率\n",
    "def GetRetCap(factors: pd.DataFrame) -> pd.DataFrame:\n",
    "    '''\n",
    "    factors:因子值的df MultiIndex date,code\n",
    "    ==================\n",
    "    return df next_ret,market_cap\n",
    "    '''\n",
    "    \n",
    "    dates = [x.date() for x in factors.index.levels[0]]\n",
    "    start_date = min(dates)\n",
    "    end_date = max(dates)\n",
    "    \n",
    "    # 将最后一天的日期再往后推30天，这样能将最后一个调仓日往后推一个月\n",
    "    target = end_date + relativedelta(months=1)\n",
    "    monthCountDay = calendar.monthrange(target.year, target.month)[1]\n",
    "    offset_day = datetime.date(target.year, target.month, day=monthCountDay)\n",
    "    dates.append(offset_day)\n",
    "\n",
    "    datas_dic = {}\n",
    "    n = len(dates) - 1\n",
    "    \n",
    "    for i in tqdm(range(n), desc='DownLoad NetRet'):\n",
    "\n",
    "        date = dates[i]\n",
    "\n",
    "        date_next = dates[i + 1]\n",
    "\n",
    "        stocks = factors.loc[date].index.tolist()  #提取股票池\n",
    "    \n",
    "        #计算对数收益率\n",
    "        close_df = get_price(\n",
    "            stocks, end_date=date, count=1, fields='close',\n",
    "            panel=False).set_index('code')['close']\n",
    "\n",
    "        next_df = get_price(\n",
    "            stocks, end_date=date_next, count=1, fields='close',\n",
    "            panel=False).set_index('code')['close']\n",
    "\n",
    "        df = np.log(next_df / close_df)  #计算对数收益率\n",
    "        df = df.to_frame('log_ret')\n",
    "        \n",
    "        #提取总市值\n",
    "        df['cap'] = get_valuation(\n",
    "            stocks, end_date=date, fields='market_cap',\n",
    "            count=1).set_index('code')['market_cap']\n",
    "\n",
    "        #存储数\n",
    "        datas_dic[date] = df[['cap', 'log_ret']]\n",
    "\n",
    "    datas_df = pd.concat(datas_dic)\n",
    "    datas_df.index.names = ['date','code']\n",
    "    datas_df = datas_df.reset_index()\n",
    "    datas_df['date'] = pd.to_datetime(datas_df['date'])\n",
    "    datas_df.set_index(['date','code'],inplace=True)\n",
    "    \n",
    "    return datas_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "DownLoad NetRet: 100%|██████████| 108/108 [00:22<00:00,  4.60it/s]\n"
     ]
    }
   ],
   "source": [
    "ret_cap = GetRetCap(factors)  # 对数收益计算较慢，代码运行时间较长"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "code_folding": []
   },
   "outputs": [],
   "source": [
    "# 存储对称正交变换后的数据\n",
    "datas_all = pd.concat([factors4, ret_cap], axis=1, join='inner')  # 将数据合并入原始数据中\n",
    "datas_all.index.names = ['date', 'code']\n",
    "datas_all.to_csv('../Data/SVM_timing_datas.csv')  # 将数据存入数据文件中\n",
    "\n",
    "# 存储对称正交前的数据\n",
    "datas_all = pd.concat([factors3, ret_cap], axis=1, join='inner')  # 将数据合并入原始数据中\n",
    "datas_all.index.names = ['date', 'code']\n",
    "datas_all.to_csv('../Data/noorth_SVM_timing_datas.csv')  # 将数据存入数据文件中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>INDUSTRY</th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "      <th>cap</th>\n",
       "      <th>log_ret</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2019-12-31</th>\n",
       "      <th>603501.XSHG</th>\n",
       "      <td>有色金属I</td>\n",
       "      <td>0.022625</td>\n",
       "      <td>-0.036422</td>\n",
       "      <td>-0.167140</td>\n",
       "      <td>0.168606</td>\n",
       "      <td>0.106633</td>\n",
       "      <td>-0.024207</td>\n",
       "      <td>-0.075915</td>\n",
       "      <td>-0.039279</td>\n",
       "      <td>0.063812</td>\n",
       "      <td>-0.143146</td>\n",
       "      <td>-0.024140</td>\n",
       "      <td>0.127055</td>\n",
       "      <td>1238.4915</td>\n",
       "      <td>0.257686</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603833.XSHG</th>\n",
       "      <td>有色金属I</td>\n",
       "      <td>-0.081008</td>\n",
       "      <td>0.048392</td>\n",
       "      <td>0.117325</td>\n",
       "      <td>-0.033240</td>\n",
       "      <td>0.031121</td>\n",
       "      <td>-0.071707</td>\n",
       "      <td>-0.017307</td>\n",
       "      <td>0.012956</td>\n",
       "      <td>-0.041966</td>\n",
       "      <td>0.041899</td>\n",
       "      <td>0.001852</td>\n",
       "      <td>0.119194</td>\n",
       "      <td>491.5991</td>\n",
       "      <td>-0.034786</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603899.XSHG</th>\n",
       "      <td>有色金属I</td>\n",
       "      <td>0.068465</td>\n",
       "      <td>0.020370</td>\n",
       "      <td>0.013386</td>\n",
       "      <td>0.025082</td>\n",
       "      <td>-0.057924</td>\n",
       "      <td>-0.005205</td>\n",
       "      <td>-0.045873</td>\n",
       "      <td>-0.011351</td>\n",
       "      <td>-0.053812</td>\n",
       "      <td>0.078045</td>\n",
       "      <td>-0.045636</td>\n",
       "      <td>0.077171</td>\n",
       "      <td>448.4080</td>\n",
       "      <td>0.027533</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603986.XSHG</th>\n",
       "      <td>有色金属I</td>\n",
       "      <td>0.011945</td>\n",
       "      <td>0.145880</td>\n",
       "      <td>0.091352</td>\n",
       "      <td>0.130843</td>\n",
       "      <td>0.078486</td>\n",
       "      <td>-0.002135</td>\n",
       "      <td>-0.007030</td>\n",
       "      <td>-0.011422</td>\n",
       "      <td>-0.011045</td>\n",
       "      <td>-0.031203</td>\n",
       "      <td>-0.104375</td>\n",
       "      <td>0.134126</td>\n",
       "      <td>657.8523</td>\n",
       "      <td>0.322953</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>603993.XSHG</th>\n",
       "      <td>有色金属I</td>\n",
       "      <td>-0.029949</td>\n",
       "      <td>-0.020104</td>\n",
       "      <td>0.084894</td>\n",
       "      <td>0.019199</td>\n",
       "      <td>-0.024283</td>\n",
       "      <td>0.086690</td>\n",
       "      <td>-0.033563</td>\n",
       "      <td>-0.043170</td>\n",
       "      <td>0.025330</td>\n",
       "      <td>-0.067603</td>\n",
       "      <td>0.075067</td>\n",
       "      <td>0.006625</td>\n",
       "      <td>941.7269</td>\n",
       "      <td>-0.056619</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                       INDUSTRY      LVGI    ...           cap   log_ret\n",
       "date       code                              ...                        \n",
       "2019-12-31 603501.XSHG    有色金属I  0.022625    ...     1238.4915  0.257686\n",
       "           603833.XSHG    有色金属I -0.081008    ...      491.5991 -0.034786\n",
       "           603899.XSHG    有色金属I  0.068465    ...      448.4080  0.027533\n",
       "           603986.XSHG    有色金属I  0.011945    ...      657.8523  0.322953\n",
       "           603993.XSHG    有色金属I -0.029949    ...      941.7269 -0.056619\n",
       "\n",
       "[5 rows x 15 columns]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 读取对称正交后的数据集用于计算因子收益\n",
    "datas_all = pd.read_csv(\n",
    "    '../Data/SVM_timing_datas.csv', index_col=[0, 1])  \n",
    "datas_all.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "code_folding": [
     1
    ]
   },
   "outputs": [],
   "source": [
    "#计算因子收益\n",
    "def Neu_Ret(datas_all:pd.DataFrame)->pd.DataFrame:\n",
    "    \n",
    "    '''\n",
    "    datas_all:df MultiIndex date,code\n",
    "    ==========\n",
    "    return ser 因子收益\n",
    "    index-date columns-factor_name\n",
    "    '''\n",
    "    \n",
    "    # 提取因子名\n",
    "    factors = [\n",
    "        i for i in datas_all.columns.tolist()\n",
    "        if i not in ['INDUSTRY', 'cap', 'log_ret']\n",
    "    ]  \n",
    "    \n",
    "    dates = datas_all.index.get_level_values(0).unique()\n",
    "    \n",
    "    # 创建初始因子收益矩阵\n",
    "    ret = pd.DataFrame(index=dates, columns=factors)  \n",
    "    \n",
    "    \n",
    "    for trDate,data in datas_all.groupby(level='date'):\n",
    "        \n",
    "\n",
    "        data = data.fillna(data.mean()) # 均值填充缺失值\n",
    "        dfswsdummies = pd.get_dummies(data['INDUSTRY'])  # 得到申万一级行业虚拟变量\n",
    "        ret_dic = {}\n",
    "        \n",
    "        for label,factor_df in data.loc[:,factors].items():\n",
    "            \n",
    "            X = pd.concat([factor_df,dfswsdummies],axis=1) # 提取回归时的自变量\n",
    "            Y = data[['log_ret']]  # 提取回归的因变量\n",
    "            ret.loc[trDate,label] = sm.regression.linear_model.OLS(\n",
    "                Y, X, missing='drop').fit().params[0]  # 进行OLS回归\n",
    "            \n",
    "    return ret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-08-30</th>\n",
       "      <td>0.0316327</td>\n",
       "      <td>-0.0973586</td>\n",
       "      <td>-0.0374093</td>\n",
       "      <td>-0.0431525</td>\n",
       "      <td>0.231561</td>\n",
       "      <td>-0.122654</td>\n",
       "      <td>0.150164</td>\n",
       "      <td>0.0259805</td>\n",
       "      <td>-0.0801106</td>\n",
       "      <td>0.0379536</td>\n",
       "      <td>-0.0885412</td>\n",
       "      <td>0.118475</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-09-30</th>\n",
       "      <td>0.148354</td>\n",
       "      <td>-0.0264201</td>\n",
       "      <td>0.0633897</td>\n",
       "      <td>0.211222</td>\n",
       "      <td>-0.223375</td>\n",
       "      <td>-0.110421</td>\n",
       "      <td>0.0286347</td>\n",
       "      <td>0.0115868</td>\n",
       "      <td>0.136627</td>\n",
       "      <td>0.215342</td>\n",
       "      <td>0.178958</td>\n",
       "      <td>0.0819617</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-10-31</th>\n",
       "      <td>-0.0367791</td>\n",
       "      <td>0.011632</td>\n",
       "      <td>-0.11648</td>\n",
       "      <td>0.124841</td>\n",
       "      <td>-0.0176064</td>\n",
       "      <td>0.122933</td>\n",
       "      <td>0.0141714</td>\n",
       "      <td>0.130662</td>\n",
       "      <td>-0.19441</td>\n",
       "      <td>-0.0734863</td>\n",
       "      <td>-0.00182098</td>\n",
       "      <td>0.0441613</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-11-29</th>\n",
       "      <td>-0.19865</td>\n",
       "      <td>-0.102524</td>\n",
       "      <td>0.151257</td>\n",
       "      <td>0.0527727</td>\n",
       "      <td>0.326576</td>\n",
       "      <td>0.109926</td>\n",
       "      <td>-0.0871529</td>\n",
       "      <td>0.0921143</td>\n",
       "      <td>-0.104464</td>\n",
       "      <td>-0.124047</td>\n",
       "      <td>-0.0897981</td>\n",
       "      <td>0.248464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-31</th>\n",
       "      <td>0.295504</td>\n",
       "      <td>0.173699</td>\n",
       "      <td>-0.0557015</td>\n",
       "      <td>0.256275</td>\n",
       "      <td>0.340828</td>\n",
       "      <td>-0.101772</td>\n",
       "      <td>-0.391574</td>\n",
       "      <td>-0.0209924</td>\n",
       "      <td>-0.0792407</td>\n",
       "      <td>-0.0346713</td>\n",
       "      <td>-0.297258</td>\n",
       "      <td>0.275343</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 LVGI           ...           total_asset_growth_rate\n",
       "date                            ...                                  \n",
       "2019-08-30  0.0316327           ...                          0.118475\n",
       "2019-09-30   0.148354           ...                         0.0819617\n",
       "2019-10-31 -0.0367791           ...                         0.0441613\n",
       "2019-11-29   -0.19865           ...                          0.248464\n",
       "2019-12-31   0.295504           ...                          0.275343\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Ret_mat=Neu_Ret(datas_all)  #此处使用对称正交后的因子计算的因子收益\n",
    "Ret_mat.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 五、择时变量的选择\n",
    "\n",
    "从`宏观经济环境`，`货币政策`，`市场状态变量`，以及`因子自身收益与波动`情况四方面入手，寻找因子收益预测的解释变量，最终选择如下择时变量，其中：\n",
    "\n",
    "+ 宏观经济环境：用于衡量经济是否健康或是否具有通货膨胀风险；\n",
    "\n",
    "\n",
    "+ 货币政策：用于反映国家对经济的宏观调控走向；\n",
    "\n",
    "\n",
    "+ 市场状态变量：用于衡量股票或债券市场的状态\n",
    "\n",
    "\n",
    "+ 因子自身收益及波动：因子自身收益变化对预测因子未来有效性也起到了重要的作用。\n",
    "\n",
    "\n",
    "**择时变量明细表：**\n",
    "\n",
    "|类型|指标代码|指标名称|说明|\n",
    "|:---:|:---:|:---:|:---:|\n",
    "|货币政策|Bond_yield_3M|3个月国债收益率|-|\n",
    "|货币政策|M1|M1货币供应量同比增长率|-|\n",
    "|经济环境|CPI|CPI同比增长率|-|\n",
    "|经济环境|PPI|PPI同比增长率|-|\n",
    "|市场状态|Risk|风险溢价指标|股息率-10年国债到期收益率|\n",
    "|市场状态|TS|期限利差|10年国债到期收益率-1年国债到期收益率|\n",
    "|市场状态|CS|信用利差|1年中债中短期票据到期收益率-1年国债到期收益率|\n",
    "|市场状态|RET_300|沪深300收益率|月度|\n",
    "|市场状态|RET_1000|中证1000收益率|月度|\n",
    "|市场状态|STD_300|沪深300波动率|月度|\n",
    "|市场状态|STD_1000|中证1000波动率|月度|\n",
    "|市场状态|RET_Spread|大小盘收益差值|RET_300-RET_1000|\n",
    "|市场状态|STD_Spread|大小盘波动差值|STD_300-STD_1000|\n",
    "|因子收益衍生|Ret_Factor|因子收益|6个月加权移动平均|\n",
    "|因子收益衍生|Std_Factor|因子波动|6个月加权移动平均|\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "code_folding": [
     1,
     29,
     48,
     68,
     79,
     93,
     105,
     124,
     143,
     155,
     166,
     193,
     226,
     259
    ]
   },
   "outputs": [],
   "source": [
    "# 获取择时因子\n",
    "def get_Timing_variables(begdate:str, enddate:str)->pd.DataFrame:\n",
    "\n",
    "    Bond_yield_3M = Get_Bond_yield_3M(begdate, enddate)\n",
    "    M1 = GetMacro_M1(begdate, enddate)\n",
    "    CPI = GetMacro_CPI(begdate, enddate)\n",
    "    PPI = GetMacro_PPI(begdate, enddate)\n",
    "    \n",
    "    RISK = GetRiskIndex(begdate,enddate)\n",
    "    TS = Get_TS(begdate, enddate)\n",
    "    CS = Get_CS(begdate, enddate)\n",
    "    RET_300 = GetIndexMRet('000300.XSHG', begdate, enddate, 'RET_300')\n",
    "    RET_1000 = GetIndexMRet('000852.XSHG', begdate, enddate, 'RET_1000')\n",
    "\n",
    "    STD_300 = GetIndexMSTD('000300.XSHG', begdate, enddate, 'STD_300')\n",
    "    STD_1000 = GetIndexMSTD('000852.XSHG', begdate, enddate, 'STD_1000')\n",
    "\n",
    "    RET_Spread = RET_300['RET_300'] - RET_1000['RET_1000']\n",
    "    RET_Spread.name = 'RET_Spread'\n",
    "    \n",
    "    STD_Spread = STD_300['STD_300'] - STD_1000['STD_1000']\n",
    "    STD_Spread.name = 'STD_Spread'\n",
    "    \n",
    "    return pd.concat([\n",
    "        Bond_yield_3M, M1, CPI, PPI, TS, CS, RET_300, RET_1000, STD_300,\n",
    "        STD_1000, RET_Spread, STD_Spread,RISK\n",
    "    ],\n",
    "                     axis=1)\n",
    "    \n",
    "def GetMacro_M1(start_date:str,end_date:str)->pd.DataFrame:\n",
    "    '''\n",
    "    start_date/end_date:YYYY-MM-dd\n",
    "    '''\n",
    "    # 获取M1同比\n",
    "    q = query(macro.MAC_MONEY_SUPPLY_MONTH.stat_month,\n",
    "        macro.MAC_MONEY_SUPPLY_MONTH.m1_yoy).filter(\n",
    "            macro.MAC_MONEY_SUPPLY_MONTH.stat_month>=start_date[:7],\n",
    "            macro.MAC_MONEY_SUPPLY_MONTH.stat_month<=end_date[:7])\n",
    "    \n",
    "    df = macro.run_query(q)\n",
    "    \n",
    "    df['stat_month'] = pd.to_datetime(df['stat_month'])\n",
    "\n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    idx = pd.DataFrame({'stat_month':pd.to_datetime(dates)})\n",
    "\n",
    "    return pd.merge_asof(idx,df.sort_values('stat_month'),on='stat_month').set_index('stat_month')\n",
    "\n",
    "def GetMacro_CPI(start_date:str,end_date:str)->pd.DataFrame:\n",
    "    '''\n",
    "    start_date/end_date:YYYY-MM-DD\n",
    "    '''\n",
    "    # 获取cpi同比\n",
    "    q = query(macro.MAC_CPI_MONTH.stat_month,\n",
    "        macro.MAC_CPI_MONTH.yoy).filter(\n",
    "            macro.MAC_CPI_MONTH.stat_month>=start_date[:7],\n",
    "            macro.MAC_CPI_MONTH.stat_month<=end_date[:7])\n",
    "    \n",
    "    df = macro.run_query(q)\n",
    "    df.rename(columns={'yoy':'cpi_yoy'},inplace=True)\n",
    "    df['stat_month'] = pd.to_datetime(df['stat_month'])\n",
    "\n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    idx = pd.DataFrame({'stat_month':pd.to_datetime(dates)})\n",
    "\n",
    "    return pd.merge_asof(idx,df.sort_values('stat_month'),on='stat_month').set_index('stat_month')\n",
    "\n",
    "\n",
    "def GetMacro_PPI(start_date:str,end_date:str)->pd.DataFrame:\n",
    "    \n",
    "    df = macro_china_ppi_yearly()\n",
    "    df = df.loc[start_date:end_date]\n",
    "    df.index.names = ['date']\n",
    "    \n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    idx = pd.DataFrame({'date':pd.to_datetime(dates)})\n",
    "    \n",
    "    return pd.merge_asof(idx,df.reset_index(),on='date').set_index('date')\n",
    "\n",
    "def GetRiskIndex(start_date:str,end_date:str)->pd.DataFrame:\n",
    "    \n",
    "    # 获取10年国债到期收益\n",
    "    yeild = get_bond_yield(start_date,end_date,10,'hzsylqx')\n",
    "    yeild.columns = ['n','date','yeild']\n",
    "    yeild.index = pd.to_datetime(yeild['date'])\n",
    "\n",
    "    # 股息率使用中证红利代表全市场\n",
    "    DividendRatio = getIndexDividendRatio('000922',start_date,end_date)\n",
    "    risk = DividendRatio['DividendRatio'] - yeild['yeild']\n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    risk = risk.reindex(dates).to_frame('Risk')\n",
    "    return risk.fillna(0)\n",
    "\n",
    "def Get_Bond_yield_3M(start_date:str,end_date:str)->pd.DataFrame:\n",
    "    '''\n",
    "    单位:%\n",
    "    '''\n",
    "    df = get_bond_yield(start_date,end_date,0.25,'hzsylqx')\n",
    "    df.columns = ['n','date','yeild']\n",
    "    df.index = pd.to_datetime(df['date'])\n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    \n",
    "    return df.reindex(dates)['yeild'].to_frame('Bond_yield_3M')\n",
    "\n",
    "\n",
    "def Get_TS(start_date:str,end_date:str)->pd.DataFrame:\n",
    "    '''\n",
    "    单位:%\n",
    "    '''\n",
    "    long = get_bond_yield(start_date,end_date,10,'hzsylqx')\n",
    "    long.columns = ['n','date','yeild']\n",
    "    short = get_bond_yield(start_date,end_date,1,'hzsylqx')\n",
    "    short.columns = ['n','date','yeild']\n",
    "    \n",
    "    long = long.set_index('date')\n",
    "    short = short.set_index('date')\n",
    "    \n",
    "    ts_ser = long['yeild'] - short['yeild']\n",
    "    ts_ser.index = pd.to_datetime(ts_ser.index)\n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    \n",
    "    return ts_ser.reindex(dates).to_frame('TS')\n",
    "\n",
    "\n",
    "def Get_CS(start_date:str,end_date:str)->pd.DataFrame:\n",
    "    '''\n",
    "    单位:%\n",
    "    '''\n",
    "    long = get_bond_yield(start_date,end_date,1,'syyhsylqx')\n",
    "    long.columns = ['n','date','yeild']\n",
    "    short = get_bond_yield(start_date,end_date,1,'hzsylqx')\n",
    "    short.columns = ['n','date','yeild']\n",
    "    \n",
    "    long = long.set_index('date')\n",
    "    short = short.set_index('date')\n",
    "    \n",
    "    ts_ser = long['yeild'] - short['yeild']\n",
    "    ts_ser.index = pd.to_datetime(ts_ser.index)\n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    \n",
    "    return ts_ser.reindex(dates).to_frame('CS')\n",
    "\n",
    "\n",
    "def GetIndexMRet(symbol:str,start_date:str,end_date:str,name:str)->pd.DataFrame:\n",
    "    '''\n",
    "    name :设置收益名称\n",
    "    '''\n",
    "    begin_date = pd.date_range(end=start_date,periods=1,freq='M')[0].strftime('%Y-%m-%d')\n",
    "    dates = GetTradePerid(begin_date,end_date)\n",
    "    index_price = get_price(symbol,begin_date,end_date,fields='close',panel=False)\n",
    "    \n",
    "    index_price = index_price.reindex(dates)\n",
    "    \n",
    "    return index_price['close'].pct_change().dropna().to_frame(name)\n",
    "\n",
    "def GetIndexMSTD(symbol:str,start_date:str,end_date:str,name:str)->pd.DataFrame:\n",
    "    \n",
    "    index_price = get_price(symbol,start_date,end_date,fields='close',panel=False)\n",
    "    std_df = index_price.groupby(pd.Grouper(freq='M'),as_index=False).apply(lambda x:np.std(x.pct_change())*np.sqrt(20))\n",
    "    dates = GetTradePerid(start_date,end_date)\n",
    "    std_df.index = dates\n",
    "    return std_df.rename(columns={'close':name})\n",
    "    \n",
    "\n",
    "# 单次返回所有\n",
    "# 金十数据中心-经济指标-中国-国民经济运行状况-物价水平-中国PPI年率报告\n",
    "def macro_china_ppi_yearly():\n",
    "    \"\"\"\n",
    "    中国年度PPI数据, 数据区间从19950801-至今\n",
    "    https://datacenter.jin10.com/reportType/dc_chinese_ppi_yoy\n",
    "    :return: pandas.Series\n",
    "    \"\"\"\n",
    "    t = time.time()\n",
    "\n",
    "    JS_CHINA_PPI_YEARLY_URL = (\n",
    "    \"https://cdn.jin10.com/dc/reports/dc_chinese_ppi_yoy_all.js?v={}&_={}\")\n",
    "\n",
    "    res = requests.get(\n",
    "        JS_CHINA_PPI_YEARLY_URL.format(\n",
    "            str(int(round(t * 1000))), str(int(round(t * 1000)) + 90)\n",
    "        )\n",
    "    )\n",
    "    json_data = json.loads(res.text[res.text.find(\"{\") : res.text.rfind(\"}\") + 1])\n",
    "    date_list = [item[\"date\"] for item in json_data[\"list\"]]\n",
    "    value_list = [item[\"datas\"][\"中国PPI年率报告\"] for item in json_data[\"list\"]]\n",
    "    value_df = pd.DataFrame(value_list)\n",
    "    value_df.columns = json_data[\"kinds\"]\n",
    "    value_df.index = pd.to_datetime(date_list)\n",
    "    temp_df = value_df[\"今值(%)\"]\n",
    "    temp_df.name = \"ppi\"\n",
    "    return temp_df\n",
    "\n",
    "\n",
    "def bond_china_yield(start_date:str, end_date:str,gjqx:int,qxId:str=\"hzsylqx\"):\n",
    "    \"\"\"\n",
    "    中国债券信息网-国债及其他债券收益率曲线\n",
    "    https://www.chinabond.com.cn/\n",
    "    http://yield.chinabond.com.cn/cbweb-pbc-web/pbc/historyQuery?startDate=2019-02-07&endDate=2020-02-04&gjqx=0&qxId=ycqx&locale=cn_ZH\n",
    "    注意: end_date - start_date 应该小于一年\n",
    "    :param start_date: 需要查询的日期, 返回在该日期之后一年内的数据\n",
    "        gjqx 为收益率的年限\n",
    "    hzsylqx是中债登国债收益曲线、syyhsylqx是中债登商业银行普通债收益率曲线、zdqpjsylqx是中债登短期票据收\n",
    "    :type start_date: str\n",
    "    :param end_date: 需要查询的日期, 返回在该日期之前一年内的数据\n",
    "    :type end_date: str\n",
    "    :return: 返回在指定日期之间之前一年内的数据\n",
    "    :rtype: pandas.DataFrame\n",
    "    \"\"\"\n",
    "    url = \"http://yield.chinabond.com.cn/cbweb-pbc-web/pbc/historyQuery\"\n",
    "    params = {\n",
    "        \"startDate\": start_date,\n",
    "        \"endDate\": end_date,\n",
    "        \"gjqx\": str(gjqx),\n",
    "        \"qxId\": qxId,\n",
    "        \"locale\": \"cn_ZH\",\n",
    "    }\n",
    "    headers = {\n",
    "        \"User-Agent\":\n",
    "            \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36\",\n",
    "    }\n",
    "    res = requests.get(url, params=params, headers=headers)\n",
    "    data_text = res.text.replace(\"&nbsp\", \"\")\n",
    "    data_df = pd.read_html(data_text, header=0)[1]\n",
    "    return data_df\n",
    "\n",
    "\n",
    "def get_bond_yield(start_date: str, end_date: str,periods:int,bond_type:str):\n",
    "    '''\n",
    "    periods:债券期限\n",
    "    bond_type:债券类型\n",
    "    '''\n",
    "    dates = get_trade_days(start_date, end_date)\n",
    "    n_days = len(dates)\n",
    "    limit = 244\n",
    "\n",
    "    if n_days > limit:\n",
    "\n",
    "        n = n_days // limit\n",
    "        df_list = []\n",
    "        i = 0\n",
    "        pos1, pos2 = n * i, n * (i + 1) - 1\n",
    "        while pos2 < n_days:\n",
    "            #print(pos2)\n",
    "            df = bond_china_yield(start_date=dates[pos1], end_date=dates[pos2],gjqx=periods,qxId=bond_type)\n",
    "            df_list.append(df)\n",
    "            i += 1\n",
    "            pos1, pos2 = n * i, n * (i + 1) - 1\n",
    "\n",
    "        if pos1 < n_days:\n",
    "            df = bond_china_yield(start_date=dates[pos1], end_date=dates[-1],gjqx=periods,qxId=bond_type)\n",
    "            df_list.append(df)\n",
    "        df = pd.concat(df_list, axis=0)\n",
    "    else:\n",
    "        df = bond_china_yield(start_date=start_date, end_date=end_date,gjqx=periods,qxId=bond_type)\n",
    "\n",
    "    return df.dropna(axis=1)\n",
    "\n",
    "# 查询指数股息率\n",
    "# 估值衍生\n",
    "def getIndexDividendRatio(symbol: str, start_date: str, end_date: str):\n",
    "\n",
    "    # 查询内部编码\n",
    "    InnerCode_id = jy.run_query(\n",
    "        query(jy.LC_IndexRelationship.InnerCode).filter(\n",
    "            jy.LC_IndexRelationship.SecuCode == symbol))['InnerCode'][0]\n",
    "\n",
    "    # 查询数据\n",
    "    q = query(jy.LC_IndexDerivative.TradingDay,\n",
    "              jy.LC_IndexDerivative.DividendRatio).filter(\n",
    "                  jy.LC_IndexDerivative.IndexCode == InnerCode_id,\n",
    "                  jy.LC_IndexDerivative.TradingDay >= start_date,\n",
    "                  jy.LC_IndexDerivative.TradingDay <= end_date)\n",
    "\n",
    "    return jy.run_query(q).set_index('TradingDay')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "metadata": {
    "code_folding": [
     0
    ]
   },
   "outputs": [],
   "source": [
    "## 设置回测区间\n",
    "start_date = '2014-01-01'\n",
    "end_date = '2019-12-31'\n",
    "\n",
    "# 前推36个月\n",
    "begin_date = pd.date_range(end=start_date,periods=36,freq='M')[0].strftime('%Y-%m-%d')\n",
    "\n",
    "df_m_shifted_=get_Timing_variables(begin_date,end_date)\n",
    "df_m_shifted_.to_csv('../Data/Timing_variables.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Bond_yield_3M</th>\n",
       "      <th>m1_yoy</th>\n",
       "      <th>cpi_yoy</th>\n",
       "      <th>ppi</th>\n",
       "      <th>TS</th>\n",
       "      <th>CS</th>\n",
       "      <th>RET_300</th>\n",
       "      <th>RET_1000</th>\n",
       "      <th>STD_300</th>\n",
       "      <th>STD_1000</th>\n",
       "      <th>RET_Spread</th>\n",
       "      <th>STD_Spread</th>\n",
       "      <th>Risk</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-08-30</th>\n",
       "      <td>2.4480</td>\n",
       "      <td>3.4</td>\n",
       "      <td>0.031</td>\n",
       "      <td>-0.3</td>\n",
       "      <td>0.4394</td>\n",
       "      <td>0.3891</td>\n",
       "      <td>-0.009326</td>\n",
       "      <td>-0.003294</td>\n",
       "      <td>0.047808</td>\n",
       "      <td>0.056339</td>\n",
       "      <td>-0.006032</td>\n",
       "      <td>-0.008531</td>\n",
       "      <td>1.3108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-09-30</th>\n",
       "      <td>2.2846</td>\n",
       "      <td>3.4</td>\n",
       "      <td>0.028</td>\n",
       "      <td>-0.8</td>\n",
       "      <td>0.5783</td>\n",
       "      <td>0.4551</td>\n",
       "      <td>0.003932</td>\n",
       "      <td>0.009537</td>\n",
       "      <td>0.034507</td>\n",
       "      <td>0.060117</td>\n",
       "      <td>-0.005605</td>\n",
       "      <td>-0.025610</td>\n",
       "      <td>1.1671</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-10-31</th>\n",
       "      <td>2.4819</td>\n",
       "      <td>3.3</td>\n",
       "      <td>0.046</td>\n",
       "      <td>-1.2</td>\n",
       "      <td>0.6232</td>\n",
       "      <td>0.4486</td>\n",
       "      <td>0.018933</td>\n",
       "      <td>0.004107</td>\n",
       "      <td>0.028837</td>\n",
       "      <td>0.050755</td>\n",
       "      <td>0.014826</td>\n",
       "      <td>-0.021918</td>\n",
       "      <td>0.8783</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-11-29</th>\n",
       "      <td>2.4335</td>\n",
       "      <td>3.5</td>\n",
       "      <td>0.055</td>\n",
       "      <td>-1.6</td>\n",
       "      <td>0.5219</td>\n",
       "      <td>0.4465</td>\n",
       "      <td>-0.014943</td>\n",
       "      <td>-0.024224</td>\n",
       "      <td>0.031677</td>\n",
       "      <td>0.040715</td>\n",
       "      <td>0.009281</td>\n",
       "      <td>-0.009037</td>\n",
       "      <td>1.0280</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-12-31</th>\n",
       "      <td>2.0074</td>\n",
       "      <td>4.4</td>\n",
       "      <td>0.053</td>\n",
       "      <td>-1.4</td>\n",
       "      <td>0.7734</td>\n",
       "      <td>0.6224</td>\n",
       "      <td>0.069975</td>\n",
       "      <td>0.085909</td>\n",
       "      <td>0.031468</td>\n",
       "      <td>0.042280</td>\n",
       "      <td>-0.015934</td>\n",
       "      <td>-0.010813</td>\n",
       "      <td>1.1030</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Bond_yield_3M  m1_yoy   ...    STD_Spread    Risk\n",
       "2019-08-30         2.4480     3.4   ...     -0.008531  1.3108\n",
       "2019-09-30         2.2846     3.4   ...     -0.025610  1.1671\n",
       "2019-10-31         2.4819     3.3   ...     -0.021918  0.8783\n",
       "2019-11-29         2.4335     3.5   ...     -0.009037  1.0280\n",
       "2019-12-31         2.0074     4.4   ...     -0.010813  1.1030\n",
       "\n",
       "[5 rows x 13 columns]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_m_shifted_=pd.read_csv('../Data/Timing_variables.csv',index_col=[0])\n",
    "df_m_shifted_.tail()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 六、正交变换后外部变量解释能力显著增强\n",
    "\n",
    "对于不同的分类或者回归模型，理应选择各自适用的变量筛选准则，为了统一标准和简单起见，**此处我们选择最常见的`线性回归模型的决定系数R_square 值`来对外部变量的解释能力做初步比较**：由于线性回归OLS 模型对于特征变量直接的共线性较为敏感，所以此处测试时在市场状态变量中我们只纳入了期限利差（TS），信用利差（CS），消费价格指数同比增长率（CPI），全工业品生产价格指数同比增长率（PPI），沪深300、中证1000 月度收益差值（RET_Spread），沪深300、中证1000 月度波动率差值（STD_Spread），M1货币供应量同比增长率（M1），3个月国债收益率（Bond_yield_3M）共8个指标。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "code_folding": [
     2
    ]
   },
   "outputs": [],
   "source": [
    "# 构建拟合优度函数\n",
    "# 输入参数：df_m_shifted_i（某段时间的择时变量），Ret_mat（对应时段的因子收益）\n",
    "def R_squared(df_m_shifted_i:pd.DataFrame, Ret_mat:pd.DataFrame)->pd.DataFrame:\n",
    "\n",
    "    # 提取输入的择时变量对应的索引值（即时间维度）\n",
    "    datelist = df_m_shifted_i.index.unique()\n",
    "\n",
    "    # 提取与择时变量相同维度的因子收益\n",
    "    Ret_mat = Ret_mat.loc[datelist]\n",
    "\n",
    "    # 计算因子个数\n",
    "    num_factor = len(Ret_mat.columns)\n",
    "\n",
    "    # 设置用于择时的变量\n",
    "    macro_factor_selected = [\n",
    "        'TS', 'CS', 'cpi_yoy', 'ppi', 'STD_Spread', 'RET_Spread', 'm1_yoy',\n",
    "        'Bond_yield_3M'\n",
    "    ]\n",
    "\n",
    "    # 构建初始的拟合优度数据框\n",
    "    R2_mat = pd.DataFrame(index=Ret_mat.columns, columns=['R_square'])\n",
    "\n",
    "    for label,factor in Ret_mat.items():\n",
    "\n",
    "        # 提取回归因变量（因子收益）\n",
    "        factor_ret = factor.reset_index(drop=True)\n",
    "\n",
    "        # 提取回归自变量（择时因子）\n",
    "        macro_df = df_m_shifted_i.loc[datelist, macro_factor_selected].reset_index(drop=True)\n",
    "        \n",
    "        # 进行回归并提取拟合优度值\n",
    "        r2 = sm.regression.linear_model.OLS(\n",
    "            factor_ret.astype(float), macro_df.astype(float)).fit().rsquared\n",
    "\n",
    "        R2_mat.loc[label, :] = r2\n",
    "\n",
    "    return R2_mat  #得到的R2是一个以因子名为索引，以'R_square'为列名的数据框\n",
    "\n",
    "\n",
    "# 构建滚动计算拟合优度及拟合优度均值\n",
    "# 输入参数：df_m_shifted_（为全部测试区间段择时因子数据集）,Ret_mat（为全部时间段的因子收益）,window=24（滚动周期）\n",
    "def rolling_R2(\n",
    "        df_m_shifted_:pd.DataFrame, Ret_mat:pd.DataFrame, window:int=24\n",
    ")->pd.DataFrame:  \n",
    "    \n",
    "    # 提取日期数\n",
    "    datelist = df_m_shifted_.index.unique() \n",
    "    \n",
    "    # 初始化拟合优度数据框中，以因子名为索引值\n",
    "    R2_mat_all = pd.DataFrame(\n",
    "        index=Ret_mat.columns.tolist())  \n",
    "\n",
    "    for i in range(window - 1, len(df_m_shifted_)):\n",
    "\n",
    "        df_m_shifted_i = df_m_shifted_.iloc[(i - window + 1):i, :]\n",
    "\n",
    "        # 计算每期的拟合优度\n",
    "        R2_mat_i = R_squared(df_m_shifted_i, Ret_mat) \n",
    "\n",
    "        # 将计算的第i期数据合并入初始化拟合优度数据框中\n",
    "        R2_mat_all[datelist[i]] = R2_mat_i  \n",
    "\n",
    "    return R2_mat_all.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-12-31</th>\n",
       "      <td>0.0510165</td>\n",
       "      <td>0.173187</td>\n",
       "      <td>0.300352</td>\n",
       "      <td>0.213769</td>\n",
       "      <td>0.288701</td>\n",
       "      <td>0.397229</td>\n",
       "      <td>0.461012</td>\n",
       "      <td>0.134817</td>\n",
       "      <td>0.37171</td>\n",
       "      <td>0.458406</td>\n",
       "      <td>0.155312</td>\n",
       "      <td>0.428146</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-01-31</th>\n",
       "      <td>0.0579054</td>\n",
       "      <td>0.0901847</td>\n",
       "      <td>0.33236</td>\n",
       "      <td>0.169299</td>\n",
       "      <td>0.287314</td>\n",
       "      <td>0.357015</td>\n",
       "      <td>0.443073</td>\n",
       "      <td>0.110358</td>\n",
       "      <td>0.301963</td>\n",
       "      <td>0.412385</td>\n",
       "      <td>0.43722</td>\n",
       "      <td>0.435519</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-02-28</th>\n",
       "      <td>0.05469</td>\n",
       "      <td>0.161903</td>\n",
       "      <td>0.33188</td>\n",
       "      <td>0.150858</td>\n",
       "      <td>0.270569</td>\n",
       "      <td>0.334043</td>\n",
       "      <td>0.316359</td>\n",
       "      <td>0.113004</td>\n",
       "      <td>0.21819</td>\n",
       "      <td>0.396523</td>\n",
       "      <td>0.463417</td>\n",
       "      <td>0.386656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-03-29</th>\n",
       "      <td>0.137092</td>\n",
       "      <td>0.183353</td>\n",
       "      <td>0.35711</td>\n",
       "      <td>0.146261</td>\n",
       "      <td>0.189245</td>\n",
       "      <td>0.332555</td>\n",
       "      <td>0.354691</td>\n",
       "      <td>0.0673482</td>\n",
       "      <td>0.217751</td>\n",
       "      <td>0.455631</td>\n",
       "      <td>0.573672</td>\n",
       "      <td>0.417879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-04-26</th>\n",
       "      <td>0.137166</td>\n",
       "      <td>0.164621</td>\n",
       "      <td>0.379014</td>\n",
       "      <td>0.214478</td>\n",
       "      <td>0.163499</td>\n",
       "      <td>0.357639</td>\n",
       "      <td>0.344958</td>\n",
       "      <td>0.0776939</td>\n",
       "      <td>0.229596</td>\n",
       "      <td>0.438512</td>\n",
       "      <td>0.553267</td>\n",
       "      <td>0.465659</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 LVGI           ...           total_asset_growth_rate\n",
       "2012-12-31  0.0510165           ...                          0.428146\n",
       "2013-01-31  0.0579054           ...                          0.435519\n",
       "2013-02-28    0.05469           ...                          0.386656\n",
       "2013-03-29   0.137092           ...                          0.417879\n",
       "2013-04-26   0.137166           ...                          0.465659\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 构建滚动计算拟合优度及拟合优度均值\n",
    "R2_mat_all=rolling_R2(df_m_shifted_.fillna(0),Ret_mat.fillna(0),window=24)\n",
    "R2_mat_all.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-12-31</th>\n",
       "      <td>0.0451179</td>\n",
       "      <td>0.198055</td>\n",
       "      <td>0.216762</td>\n",
       "      <td>0.222028</td>\n",
       "      <td>0.325545</td>\n",
       "      <td>0.260314</td>\n",
       "      <td>0.46209</td>\n",
       "      <td>0.182527</td>\n",
       "      <td>0.389111</td>\n",
       "      <td>0.367629</td>\n",
       "      <td>0.0877617</td>\n",
       "      <td>0.444364</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-01-31</th>\n",
       "      <td>0.0490992</td>\n",
       "      <td>0.140642</td>\n",
       "      <td>0.183815</td>\n",
       "      <td>0.153531</td>\n",
       "      <td>0.327116</td>\n",
       "      <td>0.173851</td>\n",
       "      <td>0.444924</td>\n",
       "      <td>0.1413</td>\n",
       "      <td>0.317838</td>\n",
       "      <td>0.330239</td>\n",
       "      <td>0.206881</td>\n",
       "      <td>0.438815</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-02-28</th>\n",
       "      <td>0.0393381</td>\n",
       "      <td>0.140113</td>\n",
       "      <td>0.174367</td>\n",
       "      <td>0.122871</td>\n",
       "      <td>0.279662</td>\n",
       "      <td>0.13169</td>\n",
       "      <td>0.311479</td>\n",
       "      <td>0.135058</td>\n",
       "      <td>0.270224</td>\n",
       "      <td>0.318173</td>\n",
       "      <td>0.232153</td>\n",
       "      <td>0.428219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-03-29</th>\n",
       "      <td>0.1463</td>\n",
       "      <td>0.182197</td>\n",
       "      <td>0.211951</td>\n",
       "      <td>0.120783</td>\n",
       "      <td>0.176479</td>\n",
       "      <td>0.127474</td>\n",
       "      <td>0.360628</td>\n",
       "      <td>0.0752018</td>\n",
       "      <td>0.248244</td>\n",
       "      <td>0.405733</td>\n",
       "      <td>0.322435</td>\n",
       "      <td>0.456936</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-04-26</th>\n",
       "      <td>0.157487</td>\n",
       "      <td>0.175895</td>\n",
       "      <td>0.205708</td>\n",
       "      <td>0.164188</td>\n",
       "      <td>0.150821</td>\n",
       "      <td>0.138844</td>\n",
       "      <td>0.357861</td>\n",
       "      <td>0.0722729</td>\n",
       "      <td>0.252051</td>\n",
       "      <td>0.427718</td>\n",
       "      <td>0.297726</td>\n",
       "      <td>0.538786</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 LVGI           ...           total_asset_growth_rate\n",
       "2012-12-31  0.0451179           ...                          0.444364\n",
       "2013-01-31  0.0490992           ...                          0.438815\n",
       "2013-02-28  0.0393381           ...                          0.428219\n",
       "2013-03-29     0.1463           ...                          0.456936\n",
       "2013-04-26   0.157487           ...                          0.538786\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#同理计算对称正交变换前的拟合优度\n",
    "noorth_factors=pd.read_csv('../Data/noorth_SVM_timing_datas.csv',index_col=[0,1])  # 读取对称正交前的数据\n",
    "noorth_Ret_mat=Neu_Ret(noorth_factors)  # 计算因子收益\n",
    "noorth_R2_mat_all=rolling_R2(df_m_shifted_.fillna(0),noorth_Ret_mat.fillna(0),window=24) # 滚动计算拟合优度\n",
    "noorth_R2_mat_all.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "下面比较前面入选因子经过正交变化前后，外部变量（择时变量）对入选因子解释能力（滚动n期后平均R_square值，此处n取24个月）的变化情况,发现：\n",
    "\n",
    "\n",
    "+ 经过因子值横截面对称正交后，12个入选因子中有7个因子的平均决定系数R_squre有所提升。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f4dcffb34a8>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABA8AAAH9CAYAAAB1IlVuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvOIA7rQAAIABJREFUeJzs3XmYZGV5N+BfD80iyjLKIC4xxE95BEUCbiAqAtFPE/cFlyQGwagEQTGKBEUQd1QUBBfihkYUP7e4IKIRF0SUTRTBN+5RQRwJsiMzzHx/nBpshpkz3U3N1FTPfV/XXNN16vSpp59equp33vO+E0uXLg0AAADAyswbdQEAAADA2k14AAAAAPQSHgAAAAC9hAcAAABAL+EBAAAA0Et4AAAAAPSaXNMPuHDh1WOxNuT8+RvniiuuG3UZc4Z+Do9eDpd+Dpd+Dpd+Do9eDpd+Dpd+Do9eDpd+Dte49HPBgk0mVrTdyIOVmJxcb9QlzCn6OTx6OVz6OVz6OVz6OTx6OVz6OVz6OTx6OVz6OVzj3k/hAQAAANBLeAAAAAD0Eh4AAAAAvYQHAAAAQC/hAQAAANBLeAAAAAD0Eh4AAAAAvYQHA6ec8vkcd9w7prXvK15xUA488IWruaIV+93vfpeLLrowSfL61x+Rb3/7WyOpY5m1oQYAAABWr8lRF7Ai+7zpa0M93gcO2WOox7vggu/n1FNPH+oxp+u8887O9ddfl+22u99IHh8AAIB1z1oZHozKpZf+Ni972YH5/e8vy7777pPNN98y733v8ZmcnMyWW945r3jFq/Ke9xyX66+/Lv/6rwfmzW8+Okcd9fpccslvc+ONN+Z5z3thHvzgnfPMZz45O++8a+bPn5+/+7sn5I1vfG0WL16UefPm5RWvOCxbbbXVCh9/8eLFvcfbdNNNc8opn8/k5GTufOfuGOedd04+9alP5Pe//11e/erXZptt7pNPfOJj+a//Oi1J8vCH75Z/+Ie989Of/iSvf/3hucMdNsl97rNd/vjHK/LKVx6xwn1f//ojssUWC9Laxbnsst/l1a9+Xaruk3e+8+hcdNGPcuONN+ZJT3pqHv/4J62ZbwwAAAAjJTyY4te//p984AMfzbXXXpN99vn7bLrpZjnmmHdn0003y7vedUxOP/2rOeCAg3LqqV/I2952bL70pS9kgw02yHHHnZA//GFhXvSiF+TjH/90Fi9enJ13fmh23vmheeMbj8wzn/n3edCDHpLvfOeMnHji+/KKV7xqhY//la+cusrjLV26NJtvvnke9rDd8o1vnJ6JiYkcffQ789nPfipf+tIXc4c7bJIvfenz+fd//3CS5PnP/6fsvvvf5IMfPCF77/3P2W233XPYYYdko402yiWX/HaF+ybJjTfemKOPPi6f/ewnc+qpX8zWW/9VttrqrjnggJfmT3+6IXvt9SThAQAAwDpCeDDF/e//15mcnMxmm22e29/+9vnNb36dQw99eZLkhhtuyGabbX6L/Vu7ODvu+IAkyRZbLMgGG6yfq666Mkmy3Xb3TZJceOEP8j//86uceOL7s2TJkmy++fyVPv50jreimpNkwYItc9FFF+YnP2m57323z+Rk963dfvsd8tOf/nd+9atf5v733yFJ8rCHPSLnnPO9le6bJDvssOPguHfORRf9KBtuuGGuuurKvPCF+2RycjJ//OMV0+4rAAAA4014cAsTt7h1pzttkeOOO6F3/6VLl958a9GiRZmY6OagnJxc/+b/X/vaN2eLLbaY1uOv6njLW2+99W7+uPvcFR9j6dKlNx9rYmLZ17nyx1v+uOeff27OO++cHHfcCZmcnMyjHvXwaXw9AAAAzAVWW5jiRz/6QW666aZcccUVueGGGzIxMZFf/OLnSZJPfvLj+elPf3KL/bfddrucd945SZLLLvtd5s2bl0022eQW+2y33f3yrW99PUly7rln57TTTl3p40/nePPmzctNN9200mNss03lwgt/mMWLF2fx4sW56KIfZZttKne7293z4x9flCQ566wze/ddkSuv/GO23PLOmZyczBlnfCM33bQkixYtWmkdAAAAzB1GHkxxj3tsncMOOyS//e2v85KXvCS3v/0d84Y3vCbrr79+tthiQZ7whKfcYv8993x0zj//3BxwwAuyePGivPzlh97qmPvu+/y84Q2vyVe/+uVMTEzk0EMPX+njT+d497vf9nnd645Y6eUPd7nLXfOEJzw5Bxzw/CxZsjSPf/wTs9VWd8lznrNv3vzm1+YTnzgpf/VX98w111yz0n1X5IEPfEg++tET86IXPT8Pf/hueehDH5a3vvWNK28mAAAAc8bE1GHra8LChVev2QecpQULNsnChVePuoyhufDCH2ajjTbKve5173zkIx/M0qVL85zn7LPGHn+u9XOU9HK49HO49HO49HN49HK49HO49HN49HK49HO4xqWfCxZsMrGi7UYejMBb3/qm/PKXP7/V9re97dhsuOFGq+UxN9hg/bzpTa/NhhtumA033ChHHPG61fI4AADA3LDXyfsN/ZjH73HU0I/JmiE8GIGXveyQNf6Y22xzn7zvfR9e448LAADA+DNhIgAAANBLeAAAAAD0Eh4AAAAAvYQHAAAAQC/hQY/TTjs1z3rWU3LBBefnjDO+kUWLFq32x/z+98/LFVf8b5LkaU97fK677rrV/ph91oYaAAAAGK21crWF/b928FCPN9vlQM4557vZb78Ds8MOO+ZFL3p+dtrpQVl//fWHWtvyvvjFz+VZz/qHzJ9/x9X6OAAAADBda2V4MArXXntNXvOaV+X666/PDTfckL/928fkrLPOzI9/fFF++tP/zkUXXZiXvezAHHPMu/O5z30mX/3qqZmYmJeHP/yRedaz/iHvf/97c8klv82ll16Sd77zvVlvvfVu9Ri///1leeMbj8yiRYsyb968HHLIYZmYmMiRRx6W291u4zzlKU/Pt7719fziFz/P617XBR6f+tQnctZZ385NN92Uo49+ZzbYYMMcddTrc8klv82NN96Y5z3vhXnwg3fOqad+MSed9OFsueWds9lmm+cBD3hQHv3ox65w32c840l54hOfkm9/+1u58cYbc8wx78rSpUtv8fUfdNDLs91291vT3wYAAADWQsKDgcsvvzyPe9yT8ohHPDLnnnt2vvjFz+QhD9klj3zkntl114fnlFM+n7e+9dgsXPj7fP3r/5V3vev9SZL99ts3u+/+N0mSxYsX5V3vet9KH+N973tPHve4J2bPPR+d00//aj7wgROy774vyE9+0vKpT30hm222ee51r23y0pcenK222ipJcs97/p/84z/uncMPPzTnnHN2rr32mmywwQY57rgT8oc/LMyLXvSCnHTSJ/Pe9x6f97//I7nd7TbOc57zjDzgAQ/KV75y6q32/fjHP52bbrop97jH1nn2s5+Tww//t5xzztnZeuu/usXX/9GPnpjXv/4tq7/xAAAArPWEBwN3vOOdcuKJ78vHPvaRLFq0KJtueofc6U5b3mq/iy/+UX7zm1/ngANekCS57rpr87vfXZIk2Xbb+/Y+RmsX54UvfFGSZKedHpgPfagLGu52t7tns802X+Hn3P/+f50kWbBgy1x77TVp7eLsuOMDkiRbbLEgG2ywfq688o+5/e1vnzve8U5Jkgc84EE3P97y+1511ZVJkh122HFw3Dvn2muvudXXv9FGG02nbQAAAKwDhAcDn/jESdliiy1z2GGvzY9/fFFOOOG4Fe43Obl+dtll1xx88Ctvsf3cc8+exnwIE1m6dGmSZNGixZmYmHfzMVdm6uUP3ef++RjdcRZl6dKlmZiY+POj3Pzxrfdd9pjLH3f5r/+4496xiq8FAACAdYXVFgauvPKPudvd7p4k+cY3Tr/VygoTE/Ny0003pWrbnHfeubnhhhuydOnSvOMdb82f/nTDtB5j2223y3nnnZMk+f73z8197rPtrfaZN697nOkc47LLfpd58+Zl0003y1VXXZmrrroqf/rTDTn//HNXuu8mm2wyra9/8eLF0/qaAAAAmPuEBwOPeczf5eSTP5qDDto/973v/bJw4cKb33gnyY477pR/+Zd9s9FGG2WvvZ6V/ff/5zz/+XvnTne6UzbccHpD/J/3vBfm1FNPyYEHvjCnnPKF7LvvC261z1//9U551atekZ///GcrPMaeez46S5YsyQEHvCBHHHFoXv7yQzM5OZl/+qfnZf/9n5cjjnhVqrbNvHnzVrjvdL/+yy+/PF/84uem9XUBAAAwt01MHda+JixcePWafcBZWrBgkyxcePWoy5i200//ah7wgAdl0003y0tf+qI897n/nO2332HUZd1s3Pq5NtPL4dLP4dLP4dLP4dHL4dLP4dLP4dHL4dr/awcP/ZjH73HU0I85Lsbl53PBgk0mVrTdnAdDtmjRohx00P632n6Pe/zlreZJGKYbbrghBx64X253u41yr3vVWhUcAAAAMN6EB0O2/vrr57jjTljjj/vYxz4uj33s49b44wIAADD3mfMAAAAA6CU8AAAAAHoJDwAAAIBewgMAAACgl/AAAAAA6CU8AAAAAHoJDwAAAIBewgMAAACgl/AAAAAA6CU8AAAAAHoJDwAAAIBewgMAAACgl/AAAAAA6CU8AAAAAHpNTmenqnp7kp2TLE3y4tba2VPu+2WSXye5abDp71trvx1umQAAAMCorDI8qKrdkty7tbZLVW2b5ANJdllut8e21q5ZHQUCAAAAozWdyxb2TPLZJGmtXZxkflVtulqrAgAAANYa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\n",
      "text/plain": [
       "<Figure size 1296x504 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制对称正交前后择时因子解释能力变化对比柱状图\n",
    "df = pd.DataFrame()\n",
    "df['before_orthogonal'] = noorth_R2_mat_all.mean()  # 计算对称正交前的平均拟合优度\n",
    "df['after_orthogonal'] = R2_mat_all.mean()  # 计算对称正交后的平均拟合优度\n",
    "df.plot.bar(figsize=(18, 7))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 七、回测流程及参数设置\n",
    "\n",
    "\n",
    "`分类模型回测的主要参数设置：`\n",
    "+ 调仓频率：月度（每月末调仓）；\n",
    "+ 样本内测试区间：2011-01-01 ~ 2015-12-31；\n",
    "+ 样本外测试区间：2016-01-01 ~ 2018-10-31；\n",
    "+ 注：样本内预测区间用于训练各分类模型，寻找最优参数，由于最优参数已找出，所以后面的回测时直接基于最优参数，进行全区间的回测\n",
    "\n",
    "`对于任意一个因子：`\n",
    "+ 以正交化后的因子收益的加权移动平均值 w_0作为基础权重（加权移动平均参数：半衰期h，最小期数m）；\n",
    "+ 滚动过去n期的样本作为训练集，预测未来一期的因子收益方向；\n",
    "+ 假设模型给出的未来一期因子收益方向预测值为p，(p∈{1,-1})；\n",
    "+ 假设该因子在过去36个月的因子收益均值的方向为q，(q∈{1,-1})；\n",
    "+ 如果 p=q，则该因子本期的权重不变；\n",
    "+ 如果 p≠q，则该因子本期的权重调整为 w_0 × z ,z ∈ (0,1)，此处z为权重调整系数；\n",
    "+ 基于变量解释能力调整z值：设置参数r2，当滚动过去n期样本的平均决定系数R_square小于阈值r2时，本期因子权重直接采用基础权重而不作调整，即z = 1；当滚动过去n期样本的平均决定系数R_square大于等于阈值r2时，则该因子本期的权重调整为 w_0×z ,z∈(0,1)。\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "# step1：构建因子收益的加权移动平均函数，作为基础权重\n",
    "# 输入因子收益和半衰期\n",
    "def Ret_mat_emw(Ret_mat:pd.DataFrame,period:int)->pd.DataFrame: \n",
    "    \n",
    "    # 指数加权移动平均\n",
    "    return Ret_mat.ewm(halflife=period,min_periods=2).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2011-01-31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-02-28</th>\n",
       "      <td>0.037460</td>\n",
       "      <td>-0.186316</td>\n",
       "      <td>-0.191417</td>\n",
       "      <td>-0.170819</td>\n",
       "      <td>-0.088914</td>\n",
       "      <td>-0.241016</td>\n",
       "      <td>0.078811</td>\n",
       "      <td>-0.099524</td>\n",
       "      <td>-0.147187</td>\n",
       "      <td>0.046746</td>\n",
       "      <td>-0.061546</td>\n",
       "      <td>0.145623</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-03-31</th>\n",
       "      <td>0.021255</td>\n",
       "      <td>-0.111134</td>\n",
       "      <td>-0.113005</td>\n",
       "      <td>-0.126262</td>\n",
       "      <td>-0.177534</td>\n",
       "      <td>-0.208031</td>\n",
       "      <td>0.195582</td>\n",
       "      <td>-0.002379</td>\n",
       "      <td>-0.050085</td>\n",
       "      <td>0.031667</td>\n",
       "      <td>-0.028889</td>\n",
       "      <td>0.144849</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-04-29</th>\n",
       "      <td>0.015537</td>\n",
       "      <td>-0.067098</td>\n",
       "      <td>-0.034323</td>\n",
       "      <td>-0.093758</td>\n",
       "      <td>-0.169844</td>\n",
       "      <td>-0.130743</td>\n",
       "      <td>0.122009</td>\n",
       "      <td>0.002279</td>\n",
       "      <td>0.003492</td>\n",
       "      <td>0.047828</td>\n",
       "      <td>-0.002334</td>\n",
       "      <td>0.076055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011-05-31</th>\n",
       "      <td>0.000837</td>\n",
       "      <td>-0.055413</td>\n",
       "      <td>-0.049605</td>\n",
       "      <td>-0.063075</td>\n",
       "      <td>-0.061680</td>\n",
       "      <td>-0.165503</td>\n",
       "      <td>0.054365</td>\n",
       "      <td>-0.049604</td>\n",
       "      <td>0.016985</td>\n",
       "      <td>0.071120</td>\n",
       "      <td>0.069063</td>\n",
       "      <td>0.083549</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                LVGI           ...             total_asset_growth_rate\n",
       "date                           ...                                    \n",
       "2011-01-31       NaN           ...                                 NaN\n",
       "2011-02-28  0.037460           ...                            0.145623\n",
       "2011-03-31  0.021255           ...                            0.144849\n",
       "2011-04-29  0.015537           ...                            0.076055\n",
       "2011-05-31  0.000837           ...                            0.083549\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weight_in = Ret_mat_emw(Ret_mat,period=3)\n",
    "weight_in.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "code_folding": [
     0
    ]
   },
   "outputs": [],
   "source": [
    "# step2:构建分类模型(可通过输入不同的方法method，选择不同的分类模型),预测因子受益方向\n",
    "def run_predict_models(Ret_mat: pd.DataFrame,\n",
    "                       df_m_shifted_: pd.DataFrame,\n",
    "                       method: str,\n",
    "                       window: int = 24) -> pd.DataFrame:\n",
    "    '''\n",
    "    输入因子收益Ret_mat，择时变量df_m_shifted_，\n",
    "    滚动窗口window为24（每次以24期的数据进行预测，\n",
    "    其中前23期作为训练集，最后一期作为测试集）\n",
    "    method:SVM,Logistic,DecisionTree,RandomForest\n",
    "    '''\n",
    "    ##初始化数据\n",
    "    # 获取需要预测的日期序列\n",
    "    datelist = df_m_shifted_.index.tolist()[window - 1:]\n",
    "\n",
    "    # 由于因子收益的时间跨度比择时变量的时间跨度大，为保持预测时间上的一致性，\n",
    "    # 截取与择时变量相同时间跨度的因子收益\n",
    "    Ret_mat_ = Ret_mat.loc[df_m_shifted_.index.tolist()]\n",
    "\n",
    "    # 因子收益大于0的赋值为1，小于0的赋值为-1\n",
    "    Ret_mat_sign = np.sign(Ret_mat_)\n",
    "\n",
    "    # 获取待预测的因子个数\n",
    "    num_factor = len(Ret_mat.columns)\n",
    "\n",
    "    # 提取用于预测的择时因子\n",
    "    macro_df = df_m_shifted_[[\n",
    "        'TS', 'CS', 'cpi_yoy', 'ppi', 'STD_Spread', 'RET_Spread', 'm1_yoy',\n",
    "        'Bond_yield_3M'\n",
    "    ]]\n",
    "\n",
    "    ## 用支持向量机进行预测\n",
    "    # 初始化因子预测数据框,其中起始预测时间为start_date\n",
    "    predicted_mat = pd.DataFrame(index=datelist, columns=Ret_mat_.columns)\n",
    "\n",
    "    for j in range(num_factor):\n",
    "\n",
    "        # 提取分类模型的预测变量，即第j个因子收益\n",
    "        factor_sign_i = Ret_mat_sign.iloc[:, j]\n",
    "\n",
    "        # 初始化单个因子的测试值\n",
    "        predict = pd.Series(0, index=predicted_mat.index.tolist())\n",
    "\n",
    "        for i in range(len(predict)):\n",
    "\n",
    "            # 不进行变量缩减,提取预测日期前推window的择时变量数据\n",
    "            x_design = macro_df.iloc[i:i + window, :]\n",
    "\n",
    "            # 对数据进行标准化处理\n",
    "            x_std = x_design.apply(lambda x: (x - x.mean()) / x.std())\n",
    "\n",
    "            # 以前23期为训练集\n",
    "            x_train = x_std.iloc[:-1, :]\n",
    "\n",
    "            # 以最后一期为测试集\n",
    "            x_test = x_std.iloc[-1:, :]\n",
    "\n",
    "            # 提取y集\n",
    "            y_design_logit = factor_sign_i.iloc[i:i + window - 1]\n",
    "\n",
    "            # 判断选用哪个预测模型\n",
    "            if method == 'SVM':\n",
    "                regr = svm.SVC(kernel='rbf')  # 支持向量机核函数选择rbf\n",
    "\n",
    "            elif method == 'Logistic':\n",
    "                regr = linear_model.LogisticRegression()  # 导入逻辑回归模型\n",
    "\n",
    "            elif method == 'DecisionTree':\n",
    "                regr = DecisionTreeClassifier(max_depth=3)  # 导入决策树模型\n",
    "\n",
    "            elif method == 'RandomForest':\n",
    "                regr = RandomForestClassifier(\n",
    "                    n_estimators=20, max_depth=3,\n",
    "                    random_state=0)  # 随机森林最大深度为3，n_estimators=20\n",
    "\n",
    "            regr.fit(x_train.fillna(0), y_design_logit.astype(float))\n",
    "            predict.iloc[i] = regr.predict(x_test.fillna(0))\n",
    "\n",
    "        print(Ret_mat.columns[j], \"success\")  # 打印测试成功的因子\n",
    "\n",
    "        predicted_mat.iloc[:, j] = predict  # 将各个因子滚动预测的因子收益存入初始化因子预测数据框中\n",
    "\n",
    "    return predicted_mat"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LVGI success\n",
      "PEG success\n",
      "ROC20 success\n",
      "ROC60 success\n",
      "VOL20 success\n",
      "Volume1M success\n",
      "book_to_price_ratio success\n",
      "cfo_to_ev success\n",
      "market_cap success\n",
      "roe_ttm success\n",
      "sharpe_ratio_20 success\n",
      "total_asset_growth_rate success\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-12-31</th>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-01-31</th>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-02-28</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-03-29</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-04-26</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            LVGI           ...             total_asset_growth_rate\n",
       "2012-12-31   1.0           ...                                 1.0\n",
       "2013-01-31   1.0           ...                                 1.0\n",
       "2013-02-28   1.0           ...                                 1.0\n",
       "2013-03-29   1.0           ...                                 1.0\n",
       "2013-04-26   1.0           ...                                 1.0\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_mat = run_predict_models(\n",
    "    Ret_mat, df_m_shifted_, method='SVM', window=24)\n",
    "predict_mat.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "code_folding": []
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-12-31</th>\n",
       "      <td>0.0510165</td>\n",
       "      <td>0.173187</td>\n",
       "      <td>0.300352</td>\n",
       "      <td>0.213769</td>\n",
       "      <td>0.288701</td>\n",
       "      <td>0.397229</td>\n",
       "      <td>0.461012</td>\n",
       "      <td>0.134817</td>\n",
       "      <td>0.37171</td>\n",
       "      <td>0.458406</td>\n",
       "      <td>0.155312</td>\n",
       "      <td>0.428146</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-01-31</th>\n",
       "      <td>0.0579054</td>\n",
       "      <td>0.0901847</td>\n",
       "      <td>0.33236</td>\n",
       "      <td>0.169299</td>\n",
       "      <td>0.287314</td>\n",
       "      <td>0.357015</td>\n",
       "      <td>0.443073</td>\n",
       "      <td>0.110358</td>\n",
       "      <td>0.301963</td>\n",
       "      <td>0.412385</td>\n",
       "      <td>0.43722</td>\n",
       "      <td>0.435519</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-02-28</th>\n",
       "      <td>0.05469</td>\n",
       "      <td>0.161903</td>\n",
       "      <td>0.33188</td>\n",
       "      <td>0.150858</td>\n",
       "      <td>0.270569</td>\n",
       "      <td>0.334043</td>\n",
       "      <td>0.316359</td>\n",
       "      <td>0.113004</td>\n",
       "      <td>0.21819</td>\n",
       "      <td>0.396523</td>\n",
       "      <td>0.463417</td>\n",
       "      <td>0.386656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-03-29</th>\n",
       "      <td>0.137092</td>\n",
       "      <td>0.183353</td>\n",
       "      <td>0.35711</td>\n",
       "      <td>0.146261</td>\n",
       "      <td>0.189245</td>\n",
       "      <td>0.332555</td>\n",
       "      <td>0.354691</td>\n",
       "      <td>0.0673482</td>\n",
       "      <td>0.217751</td>\n",
       "      <td>0.455631</td>\n",
       "      <td>0.573672</td>\n",
       "      <td>0.417879</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-04-26</th>\n",
       "      <td>0.137166</td>\n",
       "      <td>0.164621</td>\n",
       "      <td>0.379014</td>\n",
       "      <td>0.214478</td>\n",
       "      <td>0.163499</td>\n",
       "      <td>0.357639</td>\n",
       "      <td>0.344958</td>\n",
       "      <td>0.0776939</td>\n",
       "      <td>0.229596</td>\n",
       "      <td>0.438512</td>\n",
       "      <td>0.553267</td>\n",
       "      <td>0.465659</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 LVGI           ...           total_asset_growth_rate\n",
       "2012-12-31  0.0510165           ...                          0.428146\n",
       "2013-01-31  0.0579054           ...                          0.435519\n",
       "2013-02-28    0.05469           ...                          0.386656\n",
       "2013-03-29   0.137092           ...                          0.417879\n",
       "2013-04-26   0.137166           ...                          0.465659\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#step4:计算滚动过去n期样本的平均决定系数R_square\n",
    "r2 = rolling_R2(df_m_shifted_.fillna(0), Ret_mat.fillna(0), window=24)\n",
    "r2.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "code_folding": [
     0
    ]
   },
   "outputs": [],
   "source": [
    "#step5:构建权重调整函数\n",
    "def weight_timing_threshold(Ret_mat: pd.DataFrame,\n",
    "                            predict_mat: pd.DataFrame,\n",
    "                            weight_in: pd.DataFrame,\n",
    "                            r2: pd.DataFrame,\n",
    "                            th: float,\n",
    "                            z: float = 0.1) -> pd.DataFrame:\n",
    "    '''\n",
    "    输入参数：Ret_mat（因子收益数据集），\n",
    "    predict_mat（预测的因子收益方向），\n",
    "    weight_in（初始权重），\n",
    "    r2(拟合优度R2)，\n",
    "    th(阈值),\n",
    "    z(权重调整系数)\n",
    "    '''\n",
    "    predict_mat.dropna(inplace=True)  # 删除预期收益的缺失值\n",
    "\n",
    "    # 计算过去36个月的因子收益均值\n",
    "    factor_sign = np.sign(Ret_mat.rolling(min_periods=1, window=36).mean())\n",
    "\n",
    "    # 初始化新的因子权重\n",
    "    weight_new = pd.DataFrame(\n",
    "        0, index=predict_mat.index, columns=weight_in.columns)\n",
    "\n",
    "    # 提取预期因子收益时间对应的原始因子权重集\n",
    "    weight_in_chunk = weight_in.loc[predict_mat.index, :]\n",
    "\n",
    "    for j in range(len(weight_new.index)):\n",
    "        # 判断预测的因子收益方向是否发生变化，若发生变化则需要调整权重\n",
    "        iftrue = pd.Series(predict_mat.loc[weight_new.index[j], :] ==\n",
    "                           factor_sign.loc[weight_new.index[j], :])\n",
    "\n",
    "        time_weight = iftrue.apply(lambda x: 1 if x == True else z)\n",
    "        # 调整因子权重\n",
    "        weight_new.iloc[j, :] = weight_in_chunk.iloc[j, :] * time_weight\n",
    "\n",
    "        # 根据拟合优度判断是否有变换权重的资格\n",
    "        aa = r2.loc[weight_new.index[j], :]  # 提取对应日期的过去n期的r2\n",
    "        for name in weight_new.columns:\n",
    "            if aa[name] < th:\n",
    "                weight_new.loc[:, name] = weight_in_chunk.loc[:, name].astype(\n",
    "                    float)  # 当拟合优度小于阈值时，权重保持不变\n",
    "\n",
    "    return weight_new"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-12-31</th>\n",
       "      <td>-0.029785</td>\n",
       "      <td>0.025974</td>\n",
       "      <td>-0.071259</td>\n",
       "      <td>-0.004482</td>\n",
       "      <td>-0.036303</td>\n",
       "      <td>-0.050228</td>\n",
       "      <td>0.013749</td>\n",
       "      <td>-0.032974</td>\n",
       "      <td>0.051352</td>\n",
       "      <td>0.021932</td>\n",
       "      <td>0.121678</td>\n",
       "      <td>0.030551</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-01-31</th>\n",
       "      <td>-0.003086</td>\n",
       "      <td>0.041586</td>\n",
       "      <td>-0.035746</td>\n",
       "      <td>-0.044222</td>\n",
       "      <td>-0.018383</td>\n",
       "      <td>-0.061970</td>\n",
       "      <td>0.080987</td>\n",
       "      <td>-0.005590</td>\n",
       "      <td>0.004063</td>\n",
       "      <td>0.042738</td>\n",
       "      <td>0.131450</td>\n",
       "      <td>0.020949</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-02-28</th>\n",
       "      <td>0.026298</td>\n",
       "      <td>0.070942</td>\n",
       "      <td>0.009301</td>\n",
       "      <td>-0.025911</td>\n",
       "      <td>-0.099144</td>\n",
       "      <td>-0.072432</td>\n",
       "      <td>0.003545</td>\n",
       "      <td>-0.027458</td>\n",
       "      <td>-0.014554</td>\n",
       "      <td>0.054978</td>\n",
       "      <td>0.177616</td>\n",
       "      <td>0.041666</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-03-29</th>\n",
       "      <td>0.016106</td>\n",
       "      <td>0.053079</td>\n",
       "      <td>-0.002810</td>\n",
       "      <td>-0.010726</td>\n",
       "      <td>-0.081144</td>\n",
       "      <td>-0.094617</td>\n",
       "      <td>0.002742</td>\n",
       "      <td>-0.003835</td>\n",
       "      <td>0.002229</td>\n",
       "      <td>0.026993</td>\n",
       "      <td>0.150334</td>\n",
       "      <td>0.067063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013-04-26</th>\n",
       "      <td>0.016179</td>\n",
       "      <td>0.031828</td>\n",
       "      <td>0.008957</td>\n",
       "      <td>0.002916</td>\n",
       "      <td>0.007852</td>\n",
       "      <td>-0.076144</td>\n",
       "      <td>-0.002356</td>\n",
       "      <td>-0.044393</td>\n",
       "      <td>-0.007112</td>\n",
       "      <td>0.009735</td>\n",
       "      <td>0.174176</td>\n",
       "      <td>0.044186</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                LVGI           ...             total_asset_growth_rate\n",
       "2012-12-31 -0.029785           ...                            0.030551\n",
       "2013-01-31 -0.003086           ...                            0.020949\n",
       "2013-02-28  0.026298           ...                            0.041666\n",
       "2013-03-29  0.016106           ...                            0.067063\n",
       "2013-04-26  0.016179           ...                            0.044186\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weight_new = weight_timing_threshold(\n",
    "    Ret_mat, predict_mat, weight_in, r2, th=0.05, z=0.1)\n",
    "weight_new.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 八、 三种分类模型的参数选取\n",
    "我们将会构建支持向量机（SVM）、随机森林（Random Forest）、逻辑回归（Logistic）3种分类模型预测因子收益，然后根据滚动预测的结果进行权重调整。\n",
    "\n",
    "三种分类模型的样本内优化后的参数选取如下：\n",
    "\n",
    "|SVM|取值|Random Forest|取值|Logistic|取值|\n",
    "|:---:|:---:|:---:|:---:|:---:|:---:|\n",
    "|训练集长度n|24|训练集长度n|20|训练集长度n|36|\n",
    "|半衰期h|3|半衰期h|3|半衰期h|3|\n",
    "|权重调整系数z|0.1|权重调整系数z|0.1|权重调整系数z|0.2|\n",
    "|阈值r2|0.05|阈值r2|0|阈值r2|0.1|\n",
    "|核函数|rbt|最大深度|3|-|-|\n",
    "|-|-|n_estimators|20|-|-|\n",
    "\n",
    " *根据测试发现并不是训练时间越长越好,这里直接给出结果*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 九、SVM预测能力较强，随机森林表现稳定"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "#定义计算预测准确度函数\n",
    "def get_accuracy(predict_mat: pd.DataFrame, Ret_mat: pd.DataFrame,\n",
    "                 method: str) -> pd.DataFrame:\n",
    "    \n",
    "    ret_mat_sign = np.sign(Ret_mat.loc[predict_mat.index, :])\n",
    "    accuracy = pd.DataFrame(index=[method])\n",
    "    \n",
    "    for name in predict_mat.columns:\n",
    "        iftrue = pd.Series(predict_mat[name] == ret_mat_sign[name])\n",
    "        accuracy[name] = iftrue.sum() / len(predict_mat)\n",
    "    return accuracy.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LVGI success\n",
      "PEG success\n",
      "ROC20 success\n",
      "ROC60 success\n",
      "VOL20 success\n",
      "Volume1M success\n",
      "book_to_price_ratio success\n",
      "cfo_to_ev success\n",
      "market_cap success\n",
      "roe_ttm success\n",
      "sharpe_ratio_20 success\n",
      "total_asset_growth_rate success\n"
     ]
    }
   ],
   "source": [
    "#计算SVM的预测准确率\n",
    "predict_mat = run_predict_models(\n",
    "    Ret_mat, df_m_shifted_, method='SVM', window=24)\n",
    "SVM_accuracy = get_accuracy(predict_mat, Ret_mat, method='SVM')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LVGI success\n",
      "PEG success\n",
      "ROC20 success\n",
      "ROC60 success\n",
      "VOL20 success\n",
      "Volume1M success\n",
      "book_to_price_ratio success\n",
      "cfo_to_ev success\n",
      "market_cap success\n",
      "roe_ttm success\n",
      "sharpe_ratio_20 success\n",
      "total_asset_growth_rate success\n"
     ]
    }
   ],
   "source": [
    "#计算随机森林的预测准确率\n",
    "predict_mat = run_predict_models(\n",
    "    Ret_mat, df_m_shifted_, method='RandomForest', window=20)\n",
    "RF_accuracy = get_accuracy(predict_mat, Ret_mat, method='RandomForest')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "LVGI success\n",
      "PEG success\n",
      "ROC20 success\n",
      "ROC60 success\n",
      "VOL20 success\n",
      "Volume1M success\n",
      "book_to_price_ratio success\n",
      "cfo_to_ev success\n",
      "market_cap success\n",
      "roe_ttm success\n",
      "sharpe_ratio_20 success\n",
      "total_asset_growth_rate success\n"
     ]
    }
   ],
   "source": [
    "#计算逻辑回归的预测准确率\n",
    "predict_mat = run_predict_models(\n",
    "    Ret_mat, df_m_shifted_, method='Logistic', window=36)\n",
    "LOG_accuracy = get_accuracy(predict_mat, Ret_mat, method='Logistic')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f4dd018f400>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1296x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#绘制预测准确度对比柱状图\n",
    "df = pd.concat([SVM_accuracy, RF_accuracy, LOG_accuracy], axis=1)\n",
    "df.plot.bar(figsize=(18, 8))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 十、 随机森林和SVM的收益提升较为明显"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>LVGI</th>\n",
       "      <th>PEG</th>\n",
       "      <th>ROC20</th>\n",
       "      <th>ROC60</th>\n",
       "      <th>VOL20</th>\n",
       "      <th>Volume1M</th>\n",
       "      <th>book_to_price_ratio</th>\n",
       "      <th>cfo_to_ev</th>\n",
       "      <th>market_cap</th>\n",
       "      <th>roe_ttm</th>\n",
       "      <th>sharpe_ratio_20</th>\n",
       "      <th>total_asset_growth_rate</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th>code</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"5\" valign=\"top\">2011-01-31</th>\n",
       "      <th>000001.XSHE</th>\n",
       "      <td>-0.005361</td>\n",
       "      <td>-0.004834</td>\n",
       "      <td>0.001217</td>\n",
       "      <td>-0.025758</td>\n",
       "      <td>0.000809</td>\n",
       "      <td>0.020066</td>\n",
       "      <td>0.113213</td>\n",
       "      <td>-0.001390</td>\n",
       "      <td>0.043196</td>\n",
       "      <td>0.049163</td>\n",
       "      <td>-0.065174</td>\n",
       "      <td>-0.016647</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000002.XSHE</th>\n",
       "      <td>-0.020450</td>\n",
       "      <td>0.016854</td>\n",
       "      <td>0.007252</td>\n",
       "      <td>-0.030432</td>\n",
       "      <td>-0.000450</td>\n",
       "      <td>0.008200</td>\n",
       "      <td>0.036316</td>\n",
       "      <td>-0.041084</td>\n",
       "      <td>0.107653</td>\n",
       "      <td>-0.013657</td>\n",
       "      <td>-0.008253</td>\n",
       "      <td>0.060002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000009.XSHE</th>\n",
       "      <td>-0.003415</td>\n",
       "      <td>0.049266</td>\n",
       "      <td>0.002487</td>\n",
       "      <td>0.041332</td>\n",
       "      <td>0.100920</td>\n",
       "      <td>0.089511</td>\n",
       "      <td>-0.060232</td>\n",
       "      <td>-0.043439</td>\n",
       "      <td>-0.036879</td>\n",
       "      <td>-0.010946</td>\n",
       "      <td>0.021705</td>\n",
       "      <td>0.030863</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000012.XSHE</th>\n",
       "      <td>-0.042559</td>\n",
       "      <td>-0.061833</td>\n",
       "      <td>0.062131</td>\n",
       "      <td>0.013991</td>\n",
       "      <td>0.073872</td>\n",
       "      <td>-0.042822</td>\n",
       "      <td>-0.054426</td>\n",
       "      <td>0.027782</td>\n",
       "      <td>0.017037</td>\n",
       "      <td>0.037832</td>\n",
       "      <td>-0.036528</td>\n",
       "      <td>-0.073062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>000021.XSHE</th>\n",
       "      <td>0.136461</td>\n",
       "      <td>0.057748</td>\n",
       "      <td>0.044247</td>\n",
       "      <td>-0.025915</td>\n",
       "      <td>-0.048909</td>\n",
       "      <td>-0.042097</td>\n",
       "      <td>-0.017216</td>\n",
       "      <td>0.039846</td>\n",
       "      <td>-0.051565</td>\n",
       "      <td>-0.039835</td>\n",
       "      <td>-0.057085</td>\n",
       "      <td>0.005247</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            LVGI           ...             total_asset_growth_rate\n",
       "date       code                            ...                                    \n",
       "2011-01-31 000001.XSHE -0.005361           ...                           -0.016647\n",
       "           000002.XSHE -0.020450           ...                            0.060002\n",
       "           000009.XSHE -0.003415           ...                            0.030863\n",
       "           000012.XSHE -0.042559           ...                           -0.073062\n",
       "           000021.XSHE  0.136461           ...                            0.005247\n",
       "\n",
       "[5 rows x 12 columns]"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "datas_all = pd.read_csv(\n",
    "    '../Data/SVM_timing_datas.csv', index_col=[0, 1])  #读取对称正交后的数据集\n",
    "\n",
    "datas = datas_all[[\n",
    "    i for i in datas_all.columns if i not in ['cap', 'log_ret', 'INDUSTRY']\n",
    "]]  #提取因子数据\n",
    "\n",
    "datas.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "code_folding": [
     0
    ]
   },
   "outputs": [],
   "source": [
    "# 用于回测调用\n",
    "Ret_mat.to_csv('../Data/Ret_mat.csv')\n",
    "datas.to_csv('../Data/datas.csv')\n",
    "df_m_shifted_.to_csv('../Data/df_m_shifted_.csv')\n",
    "weight_in.to_csv('../Data/weight_in.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "code_folding": [
     0
    ]
   },
   "outputs": [],
   "source": [
    "# 定义类'参数分析'\n",
    "class parameter_analysis(object):\n",
    "\n",
    "    # 定义函数中不同的变量\n",
    "    def __init__(self, algorithm_id=None):\n",
    "        self.algorithm_id = algorithm_id  # 回测id\n",
    "\n",
    "        self.params_df = pd.DataFrame(\n",
    "        )  # 回测中所有调参备选值的内容，列名字为对应修改面两名称，对应回测中的 g.XXXX\n",
    "        self.results = {}  # 回测结果的回报率，key 为 params_df 的行序号，value 为\n",
    "        self.evaluations = {\n",
    "        }  # 回测结果的各项指标，key 为 params_df 的行序号，value 为一个 dataframe\n",
    "        self.backtest_ids = {}  # 回测结果的 id\n",
    "\n",
    "        # 新加入的基准的回测结果 id，可以默认为空 ''，则使用回测中设定的基准\n",
    "        self.benchmark_id = 'f16629492d6b6f4040b2546262782c78'\n",
    "        \n",
    "        self.benchmark_returns = []  # 新加入的基准的回测回报率\n",
    "        self.returns = {}  # 记录所有回报率\n",
    "        self.excess_returns = {}  # 记录超额收益率\n",
    "        self.log_returns = {}  # 记录收益率的 log 值\n",
    "        self.log_excess_returns = {}  # 记录超额收益的 log 值\n",
    "        self.dates = []  # 回测对应的所有日期\n",
    "        self.excess_max_drawdown = {}  # 计算超额收益的最大回撤\n",
    "        self.excess_annual_return = {}  # 计算超额收益率的年化指标\n",
    "        self.evaluations_df = pd.DataFrame()  # 记录各项回测指标，除日回报率外\n",
    "        self.failed_list = []\n",
    "        self.nav_df = pd.DataFrame()\n",
    "        \n",
    "    # 定义排队运行多参数回测函数\n",
    "    def run_backtest(\n",
    "            self,  #\n",
    "            algorithm_id=None,  # 回测策略id\n",
    "            running_max=10,  # 回测中同时巡行最大回测数量\n",
    "            start_date='2006-01-01',  # 回测的起始日期\n",
    "            end_date='2016-11-30',  # 回测的结束日期\n",
    "            frequency='day',  # 回测的运行频率\n",
    "            initial_cash='1000000',  # 回测的初始持仓金额\n",
    "            param_names=[],  # 回测中调整参数涉及的变量\n",
    "            param_values=[],  # 回测中每个变量的备选参数值\n",
    "            python_version=2,  # 回测的python版本\n",
    "            use_credit=False  # 是否允许消耗积分继续回测\n",
    "    ):\n",
    "        # 当此处回测策略的 id 没有给出时，调用类输入的策略 id\n",
    "        if algorithm_id == None:\n",
    "            algorithm_id = self.algorithm_id\n",
    "\n",
    "        # 生成所有参数组合并加载到 df 中\n",
    "        # 包含了不同参数具体备选值的排列组合中一组参数的 tuple 的 list\n",
    "        param_combinations = list(itertools.product(*param_values))\n",
    "        # 生成一个 dataframe， 对应的列为每个调参的变量，每个值为调参对应的备选值\n",
    "        to_run_df = pd.DataFrame(param_combinations, dtype='object')\n",
    "        # 修改列名称为调参变量的名字\n",
    "        to_run_df.columns = param_names\n",
    "\n",
    "        # 设定运行起始时间和保存格式\n",
    "        start = time.time()\n",
    "        # 记录结束的运行回测\n",
    "        finished_backtests = {}\n",
    "        # 记录运行中的回测\n",
    "        running_backtests = {}\n",
    "        # 计数器\n",
    "        pointer = 0\n",
    "        # 总运行回测数目，等于排列组合中的元素个数\n",
    "        total_backtest_num = len(param_combinations)\n",
    "        # 记录回测结果的回报率\n",
    "        all_results = {}\n",
    "        # 记录回测结果的各项指标\n",
    "        all_evaluations = {}\n",
    "\n",
    "        # 在运行开始时显示\n",
    "        print(('【已完成|运行中|待运行】:'), end=' ')\n",
    "        # 当运行回测开始后，如果没有全部运行完全的话：\n",
    "        while len(finished_backtests) < total_backtest_num:\n",
    "            # 显示运行、完成和待运行的回测个数\n",
    "            print(('[%s|%s|%s].' %\n",
    "                   (len(finished_backtests), len(running_backtests),\n",
    "                    (total_backtest_num - len(finished_backtests) -\n",
    "                     len(running_backtests)))),\n",
    "                  end=' ')\n",
    "            # 记录当前运行中的空位数量\n",
    "            to_run = min(\n",
    "                running_max - len(running_backtests), total_backtest_num -\n",
    "                len(running_backtests) - len(finished_backtests))\n",
    "            # 把可用的空位进行跑回测\n",
    "            for i in range(pointer, pointer + to_run):\n",
    "                # 备选的参数排列组合的 df 中第 i 行变成 dict，每个 key 为列名字，value 为 df 中对应的值\n",
    "                params = to_run_df.iloc[i].to_dict()\n",
    "                # 记录策略回测结果的 id，调整参数 extras 使用 params 的内容\n",
    "                backtest = create_backtest(\n",
    "                    algorithm_id=algorithm_id,\n",
    "                    start_date=start_date,\n",
    "                    end_date=end_date,\n",
    "                    frequency=frequency,\n",
    "                    initial_cash=initial_cash,\n",
    "                    extras=params,\n",
    "                    # 再回测中把改参数的结果起一个名字，包含了所有涉及的变量参数值\n",
    "                    name=str(params),\n",
    "                    python_version=python_version,\n",
    "                    use_credit=use_credit)\n",
    "                # 记录运行中 i 回测的回测 id\n",
    "                running_backtests[i] = backtest\n",
    "            # 计数器计数运行完的数量\n",
    "            pointer = pointer + to_run\n",
    "\n",
    "            # 获取回测结果\n",
    "            failed = []\n",
    "            finished = []\n",
    "            # 对于运行中的回测，key 为 to_run_df 中所有排列组合中的序数\n",
    "            for key in list(running_backtests.keys()):\n",
    "                # 研究调用回测的结果，running_backtests[key] 为运行中保存的结果 id\n",
    "                back_id = running_backtests[key]\n",
    "                bt = get_backtest(back_id)\n",
    "                # 获得运行回测结果的状态，成功和失败都需要运行结束后返回，如果没有返回则运行没有结束\n",
    "                status = bt.get_status()\n",
    "                # 当运行回测失败\n",
    "                if status == 'failed':\n",
    "                    # 失败 list 中记录对应的回测结果 id\n",
    "                    print('')\n",
    "                    print((\n",
    "                        '回测失败 : https://www.joinquant.com/algorithm/backtest/detail?backtestId='\n",
    "                        + back_id))\n",
    "                    failed.append(key)\n",
    "                # 当运行回测成功时\n",
    "                elif status == 'done':\n",
    "                    # 成功 list 记录对应的回测结果 id，finish 仅记录运行成功的\n",
    "                    finished.append(key)\n",
    "                    # 回测回报率记录对应回测的回报率 dict， key to_run_df 中所有排列组合中的序数， value 为回报率的 dict\n",
    "                    # 每个 value 一个 list 每个对象为一个包含时间、日回报率和基准回报率的 dict\n",
    "                    all_results[key] = bt.get_results()\n",
    "                    # 回测回报率记录对应回测结果指标 dict， key to_run_df 中所有排列组合中的序数， value 为回测结果指标的 dataframe\n",
    "                    all_evaluations[key] = bt.get_risk()\n",
    "            # 记录运行中回测结果 id 的 list 中删除失败的运行\n",
    "            for key in failed:\n",
    "                finished_backtests[key] = running_backtests.pop(key)\n",
    "            # 在结束回测结果 dict 中记录运行成功的回测结果 id，同时在运行中的记录中删除该回测\n",
    "            for key in finished:\n",
    "                finished_backtests[key] = running_backtests.pop(key)\n",
    "#                 print (finished_backtests)\n",
    "# 当一组同时运行的回测结束时报告时间\n",
    "            if len(finished_backtests) != 0 and len(\n",
    "                    finished_backtests) % running_max == 0 and to_run != 0:\n",
    "                # 记录当时时间\n",
    "                middle = time.time()\n",
    "                # 计算剩余时间，假设没工作量时间相等的话\n",
    "                remain_time = (middle - start) * (\n",
    "                    total_backtest_num -\n",
    "                    len(finished_backtests)) / len(finished_backtests)\n",
    "                # print 当前运行时间\n",
    "                print(\n",
    "                    ('[已用%s时,尚余%s时,请不要关闭浏览器].' %\n",
    "                     (str(round((middle - start) / 60.0 / 60.0,\n",
    "                                3)), str(round(remain_time / 60.0 / 60.0, 3)))),\n",
    "                    end=' ')\n",
    "            self.failed_list += failed\n",
    "            # 5秒钟后再跑一下\n",
    "            time.sleep(5)\n",
    "        # 记录结束时间\n",
    "        end = time.time()\n",
    "        print('')\n",
    "        print(\n",
    "            ('【回测完成】总用时：%s秒(即%s小时)。' %\n",
    "             (str(int(end - start)), str(round(\n",
    "                 (end - start) / 60.0 / 60.0, 2)))),\n",
    "            end=' ')\n",
    "        #         print (to_run_df,all_results,all_evaluations,finished_backtests)\n",
    "        # 对应修改类内部对应\n",
    "        #         to_run_df = {key:value for key,value in returns.items() if key not in faild}\n",
    "        self.params_df = to_run_df\n",
    "        #         all_results = {key:value for key,value in all_results.items() if key not in faild}\n",
    "        self.results = all_results\n",
    "        #         all_evaluations = {key:value for key,value in all_evaluations.items() if key not in faild}\n",
    "        self.evaluations = all_evaluations\n",
    "        #         finished_backtests = {key:value for key,value in finished_backtests.items() if key not in faild}\n",
    "        self.backtest_ids = finished_backtests\n",
    "\n",
    "    #7 最大回撤计算方法\n",
    "    def find_max_drawdown(self, returns):\n",
    "        # 定义最大回撤的变量\n",
    "        result = 0\n",
    "        # 记录最高的回报率点\n",
    "        historical_return = 0\n",
    "        # 遍历所有日期\n",
    "        for i in range(len(returns)):\n",
    "            # 最高回报率记录\n",
    "            historical_return = max(historical_return, returns[i])\n",
    "            # 最大回撤记录\n",
    "            drawdown = 1 - (returns[i] + 1) / (historical_return + 1)\n",
    "            # 记录最大回撤\n",
    "            result = max(drawdown, result)\n",
    "        # 返回最大回撤值\n",
    "        return result\n",
    "\n",
    "    # log 收益、新基准下超额收益和相对与新基准的最大回撤\n",
    "    def organize_backtest_results(self, benchmark_id=None):\n",
    "        # 若新基准的回测结果 id 没给出\n",
    "        if benchmark_id == None:\n",
    "            # 使用默认的基准回报率，默认的基准在回测策略中设定\n",
    "            self.benchmark_returns = [\n",
    "                x['benchmark_returns'] for x in self.results[0]\n",
    "            ]\n",
    "        # 当新基准指标给出后\n",
    "        else:\n",
    "            # 基准使用新加入的基准回测结果\n",
    "            self.benchmark_returns = [\n",
    "                x['returns'] for x in get_backtest(benchmark_id).get_results()\n",
    "            ]\n",
    "        # 回测日期为结果中记录的第一项对应的日期\n",
    "        self.dates = [x['time'] for x in self.results[0]]\n",
    "\n",
    "        # 对应每个回测在所有备选回测中的顺序 （key），生成新数据\n",
    "        # 由 {key：{u'benchmark_returns': 0.022480100091729405,\n",
    "        #           u'returns': 0.03184566700000002,\n",
    "        #           u'time': u'2006-02-14'}} 格式转化为：\n",
    "        # {key: []} 格式，其中 list 为对应 date 的一个回报率 list\n",
    "        for key in list(self.results.keys()):\n",
    "            self.returns[key] = [x['returns'] for x in self.results[key]]\n",
    "        # 生成对于基准（或新基准）的超额收益率\n",
    "        for key in list(self.results.keys()):\n",
    "            self.excess_returns[key] = [\n",
    "                (x + 1) / (y + 1) - 1\n",
    "                for (x, y) in zip(self.returns[key], self.benchmark_returns)\n",
    "            ]\n",
    "        # 生成 log 形式的收益率\n",
    "        for key in list(self.results.keys()):\n",
    "            self.log_returns[key] = [log(x + 1) for x in self.returns[key]]\n",
    "        # 生成超额收益率的 log 形式\n",
    "        for key in list(self.results.keys()):\n",
    "            self.log_excess_returns[key] = [\n",
    "                log(x + 1) for x in self.excess_returns[key]\n",
    "            ]\n",
    "        # 生成超额收益率的最大回撤\n",
    "        for key in list(self.results.keys()):\n",
    "            self.excess_max_drawdown[key] = self.find_max_drawdown(\n",
    "                self.excess_returns[key])\n",
    "        # 生成年化超额收益率\n",
    "        for key in list(self.results.keys()):\n",
    "            self.excess_annual_return[key] = (self.excess_returns[key][-1] +\n",
    "                                              1)**(252. /\n",
    "                                                   float(len(self.dates))) - 1\n",
    "        # 把调参数据中的参数组合 df 与对应结果的 df 进行合并\n",
    "        self.evaluations_df = pd.concat(\n",
    "            [self.params_df, pd.DataFrame(self.evaluations).T], axis=1)\n",
    "\n",
    "\n",
    "#         self.evaluations_df =\n",
    "\n",
    "# 获取最总分析数据，调用排队回测函数和数据整理的函数\n",
    "\n",
    "    def get_backtest_data(\n",
    "            self,\n",
    "            algorithm_id=None,  # 回测策略id\n",
    "            benchmark_id=None,  # 新基准回测结果id\n",
    "            file_name='results.pkl',  # 保存结果的 pickle 文件名字\n",
    "            running_max=10,  # 最大同时运行回测数量\n",
    "            start_date='2006-01-01',  # 回测开始时间\n",
    "            end_date='2016-11-30',  # 回测结束日期\n",
    "            frequency='day',  # 回测的运行频率\n",
    "            initial_cash='1000000',  # 回测初始持仓资金\n",
    "            param_names=[],  # 回测需要测试的变量\n",
    "            param_values=[],  # 对应每个变量的备选参数\n",
    "            python_version=2,\n",
    "            use_credit=False):\n",
    "        # 调运排队回测函数，传递对应参数\n",
    "        self.run_backtest(\n",
    "            algorithm_id=algorithm_id,\n",
    "            running_max=running_max,\n",
    "            start_date=start_date,\n",
    "            end_date=end_date,\n",
    "            frequency=frequency,\n",
    "            initial_cash=initial_cash,\n",
    "            param_names=param_names,\n",
    "            param_values=param_values,\n",
    "            python_version=python_version,\n",
    "            use_credit=use_credit,\n",
    "        )\n",
    "        # 回测结果指标中加入 log 收益率和超额收益率等指标\n",
    "        self.organize_backtest_results(benchmark_id)\n",
    "        # 生成 dict 保存所有结果。\n",
    "        results = {\n",
    "            'returns': self.returns,\n",
    "            'excess_returns': self.excess_returns,\n",
    "            'log_returns': self.log_returns,\n",
    "            'log_excess_returns': self.log_excess_returns,\n",
    "            'dates': self.dates,\n",
    "            'benchmark_returns': self.benchmark_returns,\n",
    "            'evaluations': self.evaluations,\n",
    "            'params_df': self.params_df,\n",
    "            'backtest_ids': self.backtest_ids,\n",
    "            'excess_max_drawdown': self.excess_max_drawdown,\n",
    "            'excess_annual_return': self.excess_annual_return,\n",
    "            'evaluations_df': self.evaluations_df,\n",
    "            \"failed_list\": self.failed_list\n",
    "        }\n",
    "        # 保存 pickle 文件\n",
    "        pickle_file = open(file_name, 'wb')\n",
    "        pickle.dump(results, pickle_file)\n",
    "        pickle_file.close()\n",
    "\n",
    "    # 读取保存的 pickle 文件，赋予类中的对象名对应的保存内容\n",
    "    def read_backtest_data(self, file_name='results.pkl'):\n",
    "        pickle_file = open(file_name, 'rb')\n",
    "        results = pickle.load(pickle_file)\n",
    "        self.returns = results['returns']\n",
    "        self.excess_returns = results['excess_returns']\n",
    "        self.log_returns = results['log_returns']\n",
    "        self.log_excess_returns = results['log_excess_returns']\n",
    "        self.dates = results['dates']\n",
    "        self.benchmark_returns = results['benchmark_returns']\n",
    "        self.evaluations = results['evaluations']\n",
    "        self.params_df = results['params_df']\n",
    "        self.backtest_ids = results['backtest_ids']\n",
    "        self.excess_max_drawdown = results['excess_max_drawdown']\n",
    "        self.excess_annual_return = results['excess_annual_return']\n",
    "        self.evaluations_df = results['evaluations_df']\n",
    "        self.failed_list = results['failed_list']\n",
    "        self.nav_df = self.GetNavDf()\n",
    "\n",
    "    # 回报率折线图\n",
    "    def plot_returns(self):\n",
    "        # 通过figsize参数可以指定绘图对象的宽度和高度，单位为英寸；\n",
    "        fig = plt.figure(figsize=(20, 8))\n",
    "        ax = fig.add_subplot(111)\n",
    "        # 作图\n",
    "        for key in list(self.returns.keys()):\n",
    "            ax.plot(\n",
    "                list(range(len(self.returns[key]))),\n",
    "                self.returns[key],\n",
    "                label=key)\n",
    "        # 设定benchmark曲线并标记\n",
    "        ax.plot(\n",
    "            list(range(len(self.benchmark_returns))),\n",
    "            self.benchmark_returns,\n",
    "            label='benchmark',\n",
    "            c='k',\n",
    "            linestyle='--')\n",
    "        ticks = [int(x) for x in np.linspace(0, len(self.dates) - 1, 11)]\n",
    "        plt.xticks(ticks, [self.dates[i] for i in ticks])\n",
    "        # 设置图例样式\n",
    "        ax.legend(loc=2, fontsize=10)\n",
    "        # 设置y标签样式\n",
    "        ax.set_ylabel('returns', fontsize=20)\n",
    "        # 设置x标签样式\n",
    "        ax.set_yticklabels([str(x * 100) + '% ' for x in ax.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax.set_title(\n",
    "            \"Strategy's performances with different parameters\", fontsize=21)\n",
    "        plt.xlim(0, len(self.returns[0]))\n",
    "\n",
    "    # 超额收益率图\n",
    "    def plot_excess_returns(self):\n",
    "        # 通过figsize参数可以指定绘图对象的宽度和高度，单位为英寸；\n",
    "        fig = plt.figure(figsize=(20, 8))\n",
    "        ax = fig.add_subplot(111)\n",
    "        # 作图\n",
    "        for key in list(self.returns.keys()):\n",
    "            ax.plot(\n",
    "                list(range(len(self.excess_returns[key]))),\n",
    "                self.excess_returns[key],\n",
    "                label=key)\n",
    "        # 设定benchmark曲线并标记\n",
    "        ax.plot(\n",
    "            list(range(len(self.benchmark_returns))),\n",
    "            [0] * len(self.benchmark_returns),\n",
    "            label='benchmark',\n",
    "            c='k',\n",
    "            linestyle='--')\n",
    "        ticks = [int(x) for x in np.linspace(0, len(self.dates) - 1, 11)]\n",
    "        plt.xticks(ticks, [self.dates[i] for i in ticks])\n",
    "        # 设置图例样式\n",
    "        ax.legend(loc=2, fontsize=10)\n",
    "        # 设置y标签样式\n",
    "        ax.set_ylabel('excess returns', fontsize=20)\n",
    "        # 设置x标签样式\n",
    "        ax.set_yticklabels([str(x * 100) + '% ' for x in ax.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax.set_title(\n",
    "            \"Strategy's performances with different parameters\", fontsize=21)\n",
    "        plt.xlim(0, len(self.excess_returns[0]))\n",
    "\n",
    "        \n",
    "    # 回测的4个主要指标，包括总回报率、最大回撤夏普率和波动\n",
    "    def get_eval4_bar(self, sort_by=[]):\n",
    "\n",
    "        sorted_params = self.params_df\n",
    "        for by in sort_by:\n",
    "            sorted_params = sorted_params.sort(by)\n",
    "        indices = sorted_params.index\n",
    "        indices = set(sorted_params.index) - set(self.failed_list)\n",
    "        fig = plt.figure(figsize=(20, 7))\n",
    "\n",
    "        # 定义位置\n",
    "        ax1 = fig.add_subplot(221)\n",
    "        # 设定横轴为对应分位，纵轴为对应指标\n",
    "        ax1.bar(\n",
    "            list(range(len(indices))),\n",
    "            [self.evaluations[x]['algorithm_return'] for x in indices],\n",
    "            0.6,\n",
    "            label='Algorithm_return')\n",
    "        plt.xticks([x + 0.3 for x in range(len(indices))], indices)\n",
    "        # 设置图例样式\n",
    "        ax1.legend(loc='best', fontsize=15)\n",
    "        # 设置y标签样式\n",
    "        ax1.set_ylabel('Algorithm_return', fontsize=15)\n",
    "        # 设置y标签样式\n",
    "        ax1.set_yticklabels([str(x * 100) + '% ' for x in ax1.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax1.set_title(\n",
    "            \"Strategy's of Algorithm_return performances of different quantile\",\n",
    "            fontsize=15)\n",
    "        # x轴范围\n",
    "        plt.xlim(0, len(indices))\n",
    "\n",
    "        # 定义位置\n",
    "        ax2 = fig.add_subplot(224)\n",
    "        # 设定横轴为对应分位，纵轴为对应指标\n",
    "        ax2.bar(\n",
    "            list(range(len(indices))),\n",
    "            [self.evaluations[x]['max_drawdown'] for x in indices],\n",
    "            0.6,\n",
    "            label='Max_drawdown')\n",
    "        plt.xticks([x + 0.3 for x in range(len(indices))], indices)\n",
    "        # 设置图例样式\n",
    "        ax2.legend(loc='best', fontsize=15)\n",
    "        # 设置y标签样式\n",
    "        ax2.set_ylabel('Max_drawdown', fontsize=15)\n",
    "        # 设置x标签样式\n",
    "        ax2.set_yticklabels([str(x * 100) + '% ' for x in ax2.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax2.set_title(\n",
    "            \"Strategy's of Max_drawdown performances of different quantile\",\n",
    "            fontsize=15)\n",
    "        # x轴范围\n",
    "        plt.xlim(0, len(indices))\n",
    "\n",
    "        # 定义位置\n",
    "        ax3 = fig.add_subplot(223)\n",
    "        # 设定横轴为对应分位，纵轴为对应指标\n",
    "        ax3.bar(\n",
    "            list(range(len(indices))),\n",
    "            [self.evaluations[x]['sharpe'] for x in indices],\n",
    "            0.6,\n",
    "            label='Sharpe')\n",
    "        plt.xticks([x + 0.3 for x in range(len(indices))], indices)\n",
    "        # 设置图例样式\n",
    "        ax3.legend(loc='best', fontsize=15)\n",
    "        # 设置y标签样式\n",
    "        ax3.set_ylabel('Sharpe', fontsize=15)\n",
    "        # 设置x标签样式\n",
    "        ax3.set_yticklabels([str(x * 100) + '% ' for x in ax3.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax3.set_title(\n",
    "            \"Strategy's of Sharpe performances of different quantile\",\n",
    "            fontsize=15)\n",
    "        # x轴范围\n",
    "        plt.xlim(0, len(indices))\n",
    "\n",
    "        # 定义位置\n",
    "        ax4 = fig.add_subplot(222)\n",
    "        # 设定横轴为对应分位，纵轴为对应指标\n",
    "        ax4.bar(\n",
    "            list(range(len(indices))),\n",
    "            [self.evaluations[x]['algorithm_volatility'] for x in indices],\n",
    "            0.6,\n",
    "            label='Algorithm_volatility')\n",
    "        plt.xticks([x + 0.3 for x in range(len(indices))], indices)\n",
    "        # 设置图例样式\n",
    "        ax4.legend(loc='best', fontsize=15)\n",
    "        # 设置y标签样式\n",
    "        ax4.set_ylabel('Algorithm_volatility', fontsize=15)\n",
    "        # 设置x标签样式\n",
    "        ax4.set_yticklabels([str(x * 100) + '% ' for x in ax4.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax4.set_title(\n",
    "            \"Strategy's of Algorithm_volatility performances of different quantile\",\n",
    "            fontsize=15)\n",
    "        # x轴范围\n",
    "        plt.xlim(0, len(indices))\n",
    "\n",
    "    #14 年化回报和最大回撤，正负双色表示\n",
    "    def get_eval(self, sort_by=[]):\n",
    "\n",
    "        sorted_params = self.params_df\n",
    "        for by in sort_by:\n",
    "            sorted_params = sorted_params.sort(by)\n",
    "        indices = sorted_params.index\n",
    "        indices = set(sorted_params.index) - set(self.failed_list)\n",
    "        # 大小\n",
    "        fig = plt.figure(figsize=(20, 8))\n",
    "        # 图1位置\n",
    "        ax = fig.add_subplot(111)\n",
    "        # 生成图超额收益率的最大回撤\n",
    "        ax.bar([x + 0.3 for x in range(len(indices))],\n",
    "               [-self.evaluations[x]['max_drawdown'] for x in indices],\n",
    "               color='#32CD32',\n",
    "               width=0.6,\n",
    "               label='Max_drawdown',\n",
    "               zorder=10)\n",
    "        # 图年化超额收益\n",
    "        ax.bar([x for x in range(len(indices))],\n",
    "               [self.evaluations[x]['annual_algo_return'] for x in indices],\n",
    "               color='r',\n",
    "               width=0.6,\n",
    "               label='Annual_return')\n",
    "        plt.xticks([x + 0.3 for x in range(len(indices))], indices)\n",
    "        # 设置图例样式\n",
    "        ax.legend(loc='best', fontsize=15)\n",
    "        # 基准线\n",
    "        plt.plot([0, len(indices)], [0, 0], c='k', linestyle='--', label='zero')\n",
    "        # 设置图例样式\n",
    "        ax.legend(loc='best', fontsize=15)\n",
    "        # 设置y标签样式\n",
    "        ax.set_ylabel('Max_drawdown', fontsize=15)\n",
    "        # 设置x标签样式\n",
    "        ax.set_yticklabels([str(x * 100) + '% ' for x in ax.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax.set_title(\n",
    "            \"Strategy's performances of different quantile\", fontsize=15)\n",
    "        #   设定x轴长度\n",
    "        plt.xlim(0, len(indices))\n",
    "\n",
    "    #14 超额收益的年化回报和最大回撤\n",
    "    # 加入新的benchmark后超额收益和\n",
    "    def get_excess_eval(self, sort_by=[]):\n",
    "\n",
    "        sorted_params = self.params_df\n",
    "        for by in sort_by:\n",
    "            sorted_params = sorted_params.sort(by)\n",
    "        indices = sorted_params.index\n",
    "        indices = set(sorted_params.index) - set(self.failed_list)\n",
    "        # 大小\n",
    "        fig = plt.figure(figsize=(20, 8))\n",
    "        # 图1位置\n",
    "        ax = fig.add_subplot(111)\n",
    "        # 生成图超额收益率的最大回撤\n",
    "        ax.bar([x + 0.3 for x in range(len(indices))],\n",
    "               [-self.excess_max_drawdown[x] for x in indices],\n",
    "               color='#32CD32',\n",
    "               width=0.6,\n",
    "               label='Excess_max_drawdown')\n",
    "        # 图年化超额收益\n",
    "        ax.bar([x for x in range(len(indices))],\n",
    "               [self.excess_annual_return[x] for x in indices],\n",
    "               color='r',\n",
    "               width=0.6,\n",
    "               label='Excess_annual_return')\n",
    "        plt.xticks([x + 0.3 for x in range(len(indices))], indices)\n",
    "        # 设置图例样式\n",
    "        ax.legend(loc='best', fontsize=15)\n",
    "        # 基准线\n",
    "        plt.plot([0, len(indices)], [0, 0], c='k', linestyle='--', label='zero')\n",
    "        # 设置图例样式\n",
    "        ax.legend(loc='best', fontsize=15)\n",
    "        # 设置y标签样式\n",
    "        ax.set_ylabel('Max_drawdown', fontsize=15)\n",
    "        # 设置x标签样式\n",
    "        ax.set_yticklabels([str(x * 100) + '% ' for x in ax.get_yticks()])\n",
    "        # 设置图片标题样式\n",
    "        ax.set_title(\n",
    "            \"Strategy's performances of different quantile\", fontsize=15)\n",
    "        #   设定x轴长度\n",
    "        plt.xlim(0, len(indices))\n",
    "    \n",
    "    def GetNavDf(self):\n",
    "        \n",
    "        df = 1 + pd.DataFrame(self.returns,index=self.dates)\n",
    "        df.columns = ['SVM','Logistic','RandomForest','not_timing']\n",
    "        df['benchmark'] = self.benchmark_returns\n",
    "        df.index=pd.to_datetime(df.index)\n",
    "        return df\n",
    "        \n",
    "    #计算组合收益率分析:年化收益率、收益波动率、夏普比率、最大回撤\n",
    "    def strategy_performance(self,nav_df=None):\n",
    "        \n",
    "        if isinstance(nav_df,pd.DataFrame):\n",
    "            \n",
    "            nav_df = nav_df\n",
    "        else:\n",
    "            nav_df = self.nav_df\n",
    "        ##part1:根据回测净值计算相关指标的数据准备（日度数据）\n",
    "        nav_next = nav_df.shift(1)\n",
    "        return_df = (nav_df - nav_next) / nav_next  #计算净值变化率，即为日收益率,包含组合与基准\n",
    "        return_df = return_df.dropna()  #在计算净值变化率时，首日得到的是缺失值，需将其删除\n",
    "\n",
    "        analyze = pd.DataFrame()  #用于存储计算的指标\n",
    "\n",
    "        ##part2:计算年化收益率\n",
    "        cum_return = np.exp(np.log1p(return_df).cumsum()) - 1  #计算整个回测期内的复利收益率\n",
    "        annual_return_df = (1 + cum_return)**(252 / len(return_df)) - 1  #计算年化收益率\n",
    "        analyze['annual_return'] = annual_return_df.iloc[-1]  #将年化收益率的Series赋值给数据框\n",
    "\n",
    "        #part3:计算收益波动率（以年为基准）\n",
    "        analyze['return_volatility'] = return_df.std() * np.sqrt(\n",
    "            252)  #return中的收益率为日收益率，所以计算波动率转化为年时，需要乘上np.sqrt(252)\n",
    "\n",
    "        #part4:计算夏普比率\n",
    "        risk_free = 0\n",
    "        return_risk_adj = return_df - risk_free\n",
    "        analyze['sharpe_ratio'] = return_risk_adj.mean() / np.std(\n",
    "            return_risk_adj, ddof=1)\n",
    "\n",
    "        #prat5:计算最大回撤\n",
    "        cumulative = np.exp(np.log1p(return_df).cumsum()) * 100  #计算累计收益率\n",
    "        max_return = cumulative.cummax()  #计算累计收益率的在各个时间段的最大值\n",
    "        analyze['max_drawdown'] = cumulative.sub(max_return).div(\n",
    "            max_return).min()  #最大回撤一般小于0，越小，说明离1越远，各时间点与最大收益的差距越大\n",
    "\n",
    "        #part6:计算相对指标\n",
    "        analyze['relative_return'] = analyze['annual_return'] - analyze.loc[\n",
    "            'benchmark', 'annual_return']  #计算相对年化波动率\n",
    "        analyze['relative_volatility'] = analyze['return_volatility'] - analyze.loc[\n",
    "            'benchmark', 'return_volatility']  #计算相对波动\n",
    "        analyze['relative_drawdown'] = analyze['max_drawdown'] - analyze.loc[\n",
    "            'benchmark', 'max_drawdown']  #计算相对最大回撤\n",
    "\n",
    "        #part6:计算信息比率\n",
    "        return_diff = return_df.sub(\n",
    "            return_df['benchmark'], axis=0).std() * np.sqrt(\n",
    "                252)  #计算策略与基准日收益差值的年化标准差\n",
    "        analyze['info_ratio'] = analyze['relative_return'].div(return_diff)\n",
    "\n",
    "        return analyze.T\n",
    "\n",
    "\n",
    "    #构建每年的收益表现函数\n",
    "    def get_return_year(self,method):\n",
    "        \n",
    "        nav = self.nav_df[['benchmark',method]]\n",
    "        result_dic = {}  #用于存储每年计算的各项指标\n",
    "        for y,nav_df in nav.groupby(pd.Grouper(level=0,freq='Y')):\n",
    "\n",
    "            result = self.strategy_performance(nav_df)\n",
    "            result_dic[str(y)[:4]] = result.iloc[:, -1]\n",
    "\n",
    "        result_df = pd.DataFrame(result_dic)\n",
    "      \n",
    "        return result_df.T\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "code_folding": []
   },
   "outputs": [],
   "source": [
    "#2 设定回测的 策略id \n",
    "pa = parameter_analysis('a46bf5ddd29f2ce407d284e4bb01a6ee')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "code_folding": [],
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "【已完成|运行中|待运行】: [0|0|4]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [0|2|2]. [1|1|2]. [1|2|1]. [1|2|1]. [1|2|1]. [1|2|1]. [1|2|1]. [1|2|1]. [1|2|1]. [2|1|1]. [已用0.072时,尚余0.072时,请不要关闭浏览器]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [2|2|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. [3|1|0]. \n",
      "【回测完成】总用时：488秒(即0.14小时)。 "
     ]
    }
   ],
   "source": [
    "#3 运行回测\n",
    "pa.get_backtest_data(file_name = 'results.pkl',  # 保存回测结果的Pickle文件名\n",
    "                          running_max = 2,      # 同时回测的最大个数,可以通过积分商城兑换\n",
    "                          benchmark_id = None,   # 基准的回测ID,注意是回测ID而不是策略ID,为None时为策略中使用的基准\n",
    "                          start_date = '2014-01-01', #回测开始时间\n",
    "                          end_date = '2019-12-31',   #回测结束时间\n",
    "                          frequency = 'day',         #回测频率,支持 day, minute, tick \n",
    "                          initial_cash = '5000000',  #初始资金\n",
    "                          param_names = ['method'],  #变量名称\n",
    "                          param_values = [['SVM','Logistic','RandomForest','not_timing']],  #变量对应的参数\n",
    "                          python_version = 3   # 回测python版本\n",
    "                          )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "#4 数据读取 已经运行过直接读取就可以\n",
    "pa.read_backtest_data('results.pkl')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.6/site-packages/ipykernel_launcher.py:588: RuntimeWarning: invalid value encountered in log1p\n",
      "/opt/conda/lib/python3.6/site-packages/ipykernel_launcher.py:603: RuntimeWarning: invalid value encountered in log1p\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SVM</th>\n",
       "      <th>Logistic</th>\n",
       "      <th>RandomForest</th>\n",
       "      <th>not_timing</th>\n",
       "      <th>benchmark</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>annual_return</th>\n",
       "      <td>0.371384</td>\n",
       "      <td>0.395206</td>\n",
       "      <td>0.081977</td>\n",
       "      <td>0.368583</td>\n",
       "      <td>3.236285</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>return_volatility</th>\n",
       "      <td>0.258946</td>\n",
       "      <td>0.257669</td>\n",
       "      <td>0.271958</td>\n",
       "      <td>0.255917</td>\n",
       "      <td>33.531337</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sharpe_ratio</th>\n",
       "      <td>0.085086</td>\n",
       "      <td>0.089640</td>\n",
       "      <td>0.026892</td>\n",
       "      <td>0.085392</td>\n",
       "      <td>-0.011165</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_drawdown</th>\n",
       "      <td>-0.387147</td>\n",
       "      <td>-0.418825</td>\n",
       "      <td>-0.552289</td>\n",
       "      <td>-0.380277</td>\n",
       "      <td>-0.981639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_return</th>\n",
       "      <td>-2.864900</td>\n",
       "      <td>-2.841078</td>\n",
       "      <td>-3.154308</td>\n",
       "      <td>-2.867701</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_volatility</th>\n",
       "      <td>-33.272391</td>\n",
       "      <td>-33.273668</td>\n",
       "      <td>-33.259379</td>\n",
       "      <td>-33.275420</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>relative_drawdown</th>\n",
       "      <td>0.594492</td>\n",
       "      <td>0.562815</td>\n",
       "      <td>0.429350</td>\n",
       "      <td>0.601363</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>info_ratio</th>\n",
       "      <td>-0.085443</td>\n",
       "      <td>-0.084733</td>\n",
       "      <td>-0.094067</td>\n",
       "      <td>-0.085526</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           SVM   Logistic    ...      not_timing  benchmark\n",
       "annual_return         0.371384   0.395206    ...        0.368583   3.236285\n",
       "return_volatility     0.258946   0.257669    ...        0.255917  33.531337\n",
       "sharpe_ratio          0.085086   0.089640    ...        0.085392  -0.011165\n",
       "max_drawdown         -0.387147  -0.418825    ...       -0.380277  -0.981639\n",
       "relative_return      -2.864900  -2.841078    ...       -2.867701   0.000000\n",
       "relative_volatility -33.272391 -33.273668    ...      -33.275420   0.000000\n",
       "relative_drawdown     0.594492   0.562815    ...        0.601363   0.000000\n",
       "info_ratio           -0.085443  -0.084733    ...       -0.085526        NaN\n",
       "\n",
       "[8 rows x 5 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>annual_return</th>\n",
       "      <th>return_volatility</th>\n",
       "      <th>sharpe_ratio</th>\n",
       "      <th>max_drawdown</th>\n",
       "      <th>relative_return</th>\n",
       "      <th>relative_volatility</th>\n",
       "      <th>relative_drawdown</th>\n",
       "      <th>info_ratio</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>1.099792</td>\n",
       "      <td>0.224587</td>\n",
       "      <td>0.215394</td>\n",
       "      <td>-0.111590</td>\n",
       "      <td>-3863.881091</td>\n",
       "      <td>-81.977843</td>\n",
       "      <td>0.870049</td>\n",
       "      <td>-47.001906</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015</th>\n",
       "      <td>0.484994</td>\n",
       "      <td>0.421962</td>\n",
       "      <td>0.072478</td>\n",
       "      <td>-0.361505</td>\n",
       "      <td>0.414161</td>\n",
       "      <td>-0.622279</td>\n",
       "      <td>0.408428</td>\n",
       "      <td>0.618584</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016</th>\n",
       "      <td>0.050648</td>\n",
       "      <td>0.258483</td>\n",
       "      <td>0.020246</td>\n",
       "      <td>-0.219820</td>\n",
       "      <td>0.195008</td>\n",
       "      <td>-0.554913</td>\n",
       "      <td>0.347267</td>\n",
       "      <td>0.341932</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>0.375174</td>\n",
       "      <td>0.102547</td>\n",
       "      <td>0.199046</td>\n",
       "      <td>-0.052014</td>\n",
       "      <td>-0.337757</td>\n",
       "      <td>-0.171973</td>\n",
       "      <td>0.099371</td>\n",
       "      <td>-1.762492</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018</th>\n",
       "      <td>-0.078880</td>\n",
       "      <td>0.192486</td>\n",
       "      <td>-0.020834</td>\n",
       "      <td>-0.160097</td>\n",
       "      <td>0.548713</td>\n",
       "      <td>-0.491310</td>\n",
       "      <td>0.519260</td>\n",
       "      <td>1.077565</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019</th>\n",
       "      <td>0.635615</td>\n",
       "      <td>0.225380</td>\n",
       "      <td>0.144691</td>\n",
       "      <td>-0.169371</td>\n",
       "      <td>-1.232669</td>\n",
       "      <td>-0.327385</td>\n",
       "      <td>0.141103</td>\n",
       "      <td>-3.420030</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      annual_return     ...      info_ratio\n",
       "2014       1.099792     ...      -47.001906\n",
       "2015       0.484994     ...        0.618584\n",
       "2016       0.050648     ...        0.341932\n",
       "2017       0.375174     ...       -1.762492\n",
       "2018      -0.078880     ...        1.077565\n",
       "2019       0.635615     ...       -3.420030\n",
       "\n",
       "[6 rows x 8 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>method</th>\n",
       "      <td>SVM</td>\n",
       "      <td>Logistic</td>\n",
       "      <td>RandomForest</td>\n",
       "      <td>not_timing</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>__version</th>\n",
       "      <td>101</td>\n",
       "      <td>101</td>\n",
       "      <td>101</td>\n",
       "      <td>101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>algorithm_return</th>\n",
       "      <td>5.91364</td>\n",
       "      <td>5.25583</td>\n",
       "      <td>5.18202</td>\n",
       "      <td>0.579988</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>algorithm_volatility</th>\n",
       "      <td>0.256558</td>\n",
       "      <td>0.257829</td>\n",
       "      <td>0.254813</td>\n",
       "      <td>0.270784</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>alpha</th>\n",
       "      <td>0.289332</td>\n",
       "      <td>0.265174</td>\n",
       "      <td>0.263378</td>\n",
       "      <td>-0.0250981</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>annual_algo_return</th>\n",
       "      <td>0.391209</td>\n",
       "      <td>0.367658</td>\n",
       "      <td>0.364889</td>\n",
       "      <td>0.0812425</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>annual_bm_return</th>\n",
       "      <td>0.101153</td>\n",
       "      <td>0.101153</td>\n",
       "      <td>0.101153</td>\n",
       "      <td>0.101153</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>avg_excess_return</th>\n",
       "      <td>0.000952917</td>\n",
       "      <td>0.000883705</td>\n",
       "      <td>0.00087605</td>\n",
       "      <td>-5.69881e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>avg_position_days</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>165.23</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>avg_trade_return</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0899963</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>benchmark_return</th>\n",
       "      <td>0.758166</td>\n",
       "      <td>0.758166</td>\n",
       "      <td>0.758166</td>\n",
       "      <td>0.758166</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>benchmark_volatility</th>\n",
       "      <td>0.23633</td>\n",
       "      <td>0.23633</td>\n",
       "      <td>0.23633</td>\n",
       "      <td>0.23633</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>beta</th>\n",
       "      <td>1.01185</td>\n",
       "      <td>1.02178</td>\n",
       "      <td>1.00586</td>\n",
       "      <td>1.08483</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>day_win_ratio</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.506831</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>excess_return</th>\n",
       "      <td>2.9323</td>\n",
       "      <td>2.55816</td>\n",
       "      <td>2.51617</td>\n",
       "      <td>-0.101343</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>excess_return_max_drawdown</th>\n",
       "      <td>0.0907727</td>\n",
       "      <td>0.0828414</td>\n",
       "      <td>0.084735</td>\n",
       "      <td>0.303404</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>excess_return_max_drawdown_period</th>\n",
       "      <td>[2015-08-17, 2015-09-30]</td>\n",
       "      <td>[2015-08-24, 2015-09-30]</td>\n",
       "      <td>[2015-06-30, 2015-07-09]</td>\n",
       "      <td>[2015-03-25, 2019-07-04]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>excess_return_sharpe</th>\n",
       "      <td>2.40526</td>\n",
       "      <td>2.23159</td>\n",
       "      <td>2.17414</td>\n",
       "      <td>-0.64979</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>information</th>\n",
       "      <td>3.11929</td>\n",
       "      <td>2.94462</td>\n",
       "      <td>2.87357</td>\n",
       "      <td>-0.222655</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>lose_count</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_drawdown</th>\n",
       "      <td>0.418825</td>\n",
       "      <td>0.387147</td>\n",
       "      <td>0.380277</td>\n",
       "      <td>0.552289</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_drawdown_period</th>\n",
       "      <td>[2015-06-12, 2016-01-28]</td>\n",
       "      <td>[2015-06-12, 2016-01-28]</td>\n",
       "      <td>[2015-06-12, 2015-08-26]</td>\n",
       "      <td>[2015-06-02, 2019-01-03]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max_leverage</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>period_label</th>\n",
       "      <td>2019-12</td>\n",
       "      <td>2019-12</td>\n",
       "      <td>2019-12</td>\n",
       "      <td>2019-12</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>profit_loss_ratio</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1.20456</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sharpe</th>\n",
       "      <td>1.36893</td>\n",
       "      <td>1.27084</td>\n",
       "      <td>1.27501</td>\n",
       "      <td>0.152308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>sortino</th>\n",
       "      <td>1.64223</td>\n",
       "      <td>1.53232</td>\n",
       "      <td>1.52263</td>\n",
       "      <td>0.180824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>trading_days</th>\n",
       "      <td>1464</td>\n",
       "      <td>1464</td>\n",
       "      <td>1464</td>\n",
       "      <td>1464</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>treasury_return</th>\n",
       "      <td>0.23989</td>\n",
       "      <td>0.23989</td>\n",
       "      <td>0.23989</td>\n",
       "      <td>0.23989</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>turnover_rate</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.0231716</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>win_count</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1629</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>win_ratio</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.596703</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                          0            ...                                    3\n",
       "method                                                  SVM            ...                           not_timing\n",
       "__version                                               101            ...                                  101\n",
       "algorithm_return                                    5.91364            ...                             0.579988\n",
       "algorithm_volatility                               0.256558            ...                             0.270784\n",
       "alpha                                              0.289332            ...                           -0.0250981\n",
       "annual_algo_return                                 0.391209            ...                            0.0812425\n",
       "annual_bm_return                                   0.101153            ...                             0.101153\n",
       "avg_excess_return                               0.000952917            ...                         -5.69881e-05\n",
       "avg_position_days                                       NaN            ...                               165.23\n",
       "avg_trade_return                                        NaN            ...                            0.0899963\n",
       "benchmark_return                                   0.758166            ...                             0.758166\n",
       "benchmark_volatility                                0.23633            ...                              0.23633\n",
       "beta                                                1.01185            ...                              1.08483\n",
       "day_win_ratio                                           NaN            ...                             0.506831\n",
       "excess_return                                        2.9323            ...                            -0.101343\n",
       "excess_return_max_drawdown                        0.0907727            ...                             0.303404\n",
       "excess_return_max_drawdown_period  [2015-08-17, 2015-09-30]            ...             [2015-03-25, 2019-07-04]\n",
       "excess_return_sharpe                                2.40526            ...                             -0.64979\n",
       "information                                         3.11929            ...                            -0.222655\n",
       "lose_count                                              NaN            ...                                 1101\n",
       "max_drawdown                                       0.418825            ...                             0.552289\n",
       "max_drawdown_period                [2015-06-12, 2016-01-28]            ...             [2015-06-02, 2019-01-03]\n",
       "max_leverage                                              0            ...                                    0\n",
       "period_label                                        2019-12            ...                              2019-12\n",
       "profit_loss_ratio                                       NaN            ...                              1.20456\n",
       "sharpe                                              1.36893            ...                             0.152308\n",
       "sortino                                             1.64223            ...                             0.180824\n",
       "trading_days                                           1464            ...                                 1464\n",
       "treasury_return                                     0.23989            ...                              0.23989\n",
       "turnover_rate                                           NaN            ...                            0.0231716\n",
       "win_count                                               NaN            ...                                 1629\n",
       "win_ratio                                               NaN            ...                             0.596703\n",
       "\n",
       "[32 rows x 4 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#6 查看回测结果指标\n",
    "print_table(pa.strategy_performance())\n",
    "print_table(pa.get_return_year('SVM'))\n",
    "print_table(pa.evaluations_df.T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Th1/0ha3KS0txZhJwc85ObmUlpaSnp7Rq3UREREREREREdlejy16ilVVawDITs6Mcm36hjLb+hm/3x/tKoiIiIiIiIiIRLS41Abfx8X1z7CUMtt6yanjT+o2C60v5OfnU1paGvxcUlJCfn7+Dq+HiIiIiIiIiEhAa1srd332EGOyRnLK+BPx+Xw0t7UE14/JGhnF2vWt/hlC3IUcdNAhzJnzLgDWLiE/P5+0tPQo10pEREREREREdmWlDWWsrFzNu+veY17hZwCU1LtkoT0GTOLivX8azer1KWW2xbg999wbY3bjwgvPw+fzccUV10Q7qVJLAAAgAElEQVS7SiIiIiIiIiKyiyutLw++X1D0JQcN3o/CumIAxueMJS0xNVpV63MKtvUDF130i2hXQUREREREREQkqKShLPjeli2jua2FwtoiAAam9e/hr9SNVEREREREREREelVpvQu2jcwcTlNbM8srVrKyck1wWX+mYJuIiIiIiIiIiPSqUi+z7cjhhwGwsORrVlauZkBKHrkpOdGsWp9TsE1ERERERERERHpVaX05Cb549h+4N0nxScxZ/wF1LfWMzxkT7ar1OQXbRERERERERESkV5U2lJGXkktSfCJjs0YFl4/IHBbFWu0YCraJiIiIiIiIiEivaWhppKa5lgGpeUDHCREKUgdEq1o7jIJtIiIiIiIiIiLSawLjtQ1IyQU6Bth2hWBbQrQrINunoaGBm26aSXl5GY2NjZx77vkcfvgR0a6WiIiIiIiIiOyiAjORBjLbCkIy2/K8Zf2Zgm0x7oMP3mPSpN0466wfs3nzJi677BIF20REREREREQkakobygEYkOIF21Lbg22Jcf0/FNX/z7CfO+aY44LvCwsLGThwYBRrIyIiIiIiIiK7umA30tRc79UF3bKSMqNWpx1JwbZeUjzrGarnz+vVMjMPOJCCaWf0aNsLLzyPoqJCbrvtrl6tg4iIiIiIiIjI1qhqrAYgJzkbcNls1x96DSkJKdGs1g6jCRL6iQcffIxbb72TG2+cgd/vj3Z1RERERERERGQXVd1cC0BGYnpwWX7qgA6f+zNltvWSgmln9DgLrTctWfI1ubm5DBo0mAkTDK2trVRUlJOb2/8HHBQRERERERGRnU9NUw2pCakk7ALjs0WizLYY98UXC3jmmacAKCsrpa6ujuzsnCjXSkRERERERER2VdXNNWTuIllskSjYFuO+973TKC8v4+KLz+fqqy/jiiuuIS5OzSoiIiIiIiIiO16bv42aploykjKiXZWo2TXz+fqR5OQUZs68KdrVEBEREREREZFd3NxN86lprsWPn0wF20RERERERERERLZNfUsDf//6ueBndSMVERERERERERHZRvM2f9bh866c2aZgm4iIiIiIiIiIbLMVFat5bulLHZZlJmVGqTbRp26kIiIiIiIiIiKyzT4t+gI/fk4bfxKlDeU0t7Ww78A9o12tqFGwTUREREREREREIqprriMtMW2L26ysWEVCXAJHDD+MxDiFmtSNVERERERERER6RZu/jddWvsXGms3Rror00MrKNWyo2RRx3YqK1Vz9/kzmrP+gy/0bWhpYX7OJUZnDFWjz6Cr0Aw88cDdffPE5ra2tnHPOuRx11NRoV0lERERERER2QbZsOa+vfofXV7/D/VNvi3Z1pBsVjZXc8en9AIzIGMoPJ53GqKwRwfVfFC8EYNbSl5ky/PCIZRTWFePHz8jM4X1f4RihzLYYt2DBfFauXMFDDz3OHXfcw9133xHtKomIiIiIiMguanNdUfB9Q0tjp/V+vx+/378jqyRb8O7a94Lv19Vs5N7PH6a1rTW4LCk+qdsyyhoqAMhLze39CsYoBdti3N5778uNN94KQEZGJg0NDbS2tnazl4iIiIiIiEjvC+2OeOV7M3h80dMd1r+1ZjaXzr6GisbKHV01icCWL+/wub6lgZL60uDnqqaq4PvKxuqIZZQ3lAOQl5zTBzWMTepG2ks+/L8VrFxS1P2GW2HspIEcNnXcFreJj48nNTUVgH//+2UOPfQw4uPje7UeIiIiIiIiIj2xvmYjAGOzR7OycjULir7kJ5PPDK5/ZeWbAKyoWMX+g/aJSh3FaW5rYVNtISMzh7N73kTW12xkYekSKpuqGZQ+EICKxvZg25clCzli2KGdyin3Aqe5KQq2BSizrZ94//05/PvfL3P55ddEuyoiIiIiIiKyC/L7/WyuLWJYxhCu2O+i4BhegW6jLW0twW3b1JU06jbVbqbN38aorBF8Z9y3mDxgEgBVIQG2QAaiDx+fbF4QsZxAN1IF29ops62XHDZ1XLdZaH3l448/4m9/e4w77riXjIyMqNRBREREREREdm01zbU0tzWTn5KHz+cjKymTNn8bDa0N1DTV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\n",
      "text/plain": [
       "<Figure size 1440x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    " #7 回报率折线图    \n",
    "pa.plot_returns()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": false,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "MarkDown菜单",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
